我想通过ssh运行一些脚本并将其分离,因此即使在ssh会话关闭后它也可以运行。我需要用sudo做到这一点。
我可以运行一些脚本,但无法将其分离。我尝试了以下命令:
ssh 10.0.139.120 -t "sudo -b nohup some_script"
和
ssh 10.0.139.120 -t "sudo nohup some_script &"
以上都不起作用。每次我交流“与10.0.139.171的连接已关闭”。并且服务器上没有正在运行的进程。
我也尝试过使用屏幕来做到这一点:
ssh 10.0.139.120 -t "sudo screen -S script -md some_script"
即使命令在我在本地服务器上输入时也有效,但它也不起作用。那我该怎么办呢?
我进行了小型调查,并在Stack Overflow上发现了类似的问题。根本上,您必须为脚本添加路径,或者必须进入脚本所在的目录:
ssh remote-host -t "sudo -b sh -c 'nohup /path/some_script > /dev/null 2>&1 &'"
ssh remote-host -t "sudo -b sh -c 'cd /path; nohup ./some_script > /dev/null 2>&1 &'"
如果没有sh -c
或bash -c
与号&
在年底打破以某种方式命令。
我无法设法disown
用于此目的,但setsid
效果很好:
ssh remote-host -t 'sudo -b setsid /path/some_script'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句