linux – 后台shell脚本在ssh注销后无法访问目录,即使使用nohup也是如此
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 后台shell脚本在ssh注销后无法访问目录,即使使用nohup也是如此,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2345字,纯文字阅读大概需要4分钟。
内容图文
我想在服务器计算机的后台运行一个shell脚本,并从ssh连接启动该shell脚本.即使我使用nohup运行后台进程脚本,但只要我关闭ssh连接(并且不久),后台脚本就会因目录无法访问错误而失败.
runInBackground.sh:
#!/bin/bash
...
nohup ./run.sh > /dev/null 2> local/errorLog.txt < /dev/null &
run.sh:
#!/bin/bash
...
while [ true ] ; do
...
cd optaplanner-examples
mvn exec:exec // calls java process
cd ..
done
所以当我运行runInBackground.sh时,一切都运行好几个小时,直到我断开我的ssh连接.
一旦我退出,errorlog.txt填满:
java.io.FileNotFoundException: /home/myUser/server/optaplanner-simple-benchmark-daemon/local/output/
./run.sh: line 64: /home/myUser/server/optaplanner-simple-benchmark-daemon/local/processed/failed_machineReassignmentBenchmarkConfig.xml: No such file or directory
fatal: Could not change back to '(unreachable)/server/optaplanner-simple-benchmark-daemon/local/optaplannerGitClone/optaplanner': No such file or directory
ls: cannot access /home/myUser/server/optaplanner-simple-benchmark-daemon/local/input: No such file or directory
ls: cannot access /home/myUser/server/optaplanner-simple-benchmark-daemon/local/input: No such file or directory
ls: cannot access /home/myUser/server/optaplanner-simple-benchmark-daemon/local/input: No such file or directory
... // 1000+ more of that ls error
解决方法:
好吧,它不一定是加密的主目录,但可能是一个自动挂载的主目录(例如通过NFS等).它在会话启动时挂载,并在退出时卸载.加密的家庭目录只是使用这种技术的可能原因之一.
主要问题是决定用户是否需要家庭目录的规则是什么.我希望它可以是一个分配的pty.你可以通过启动一个非交互式SSH会话来测试它是否真的是真的没有伪终端:ssh -T user @ host ls / home / myUser / server.我可以预期,在这种情况下,您将无法获得正确的目录列表.
然后我会使用像screen这样的程序来延长超出SSH会话限制的交互式会话生命周期.
服务器可能会使用其他一些机制来为交互式SSH会话提供主目录.例如.监视utmp中列出的交互式会话在这种情况下,只要您需要服务,就需要一个能够保留记录的程序.也许您可以使用自动重新建立的SSH会话.例如,我使用以下systemd单元自动保留来自不同专用网络中的一个工作站的ssh隧道:
[Unit]
Description=A tunnel to SOME_HOST
PartOf=sshd.service
Requires=network.service
[Service]
ExecStart=/usr/bin/ssh -N -q -R 2222:localhost:22 SOME_HOST
Restart=on-failure
RestartSec=5
User=tunnel
Group=tunnel
[Install]
WantedBy=sshd.service
WantedBy=network.service
发生故障时,systemd会自动重启设备并重新建立SSH会话.
内容总结
以上是互联网集市为您收集整理的linux – 后台shell脚本在ssh注销后无法访问目录,即使使用nohup也是如此全部内容,希望文章能够帮你解决linux – 后台shell脚本在ssh注销后无法访问目录,即使使用nohup也是如此所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。