setsid /etc/init.d/$SERVICE_NAME start &
ssh 远程执行一条命令,如何退出
找到办法了 在命令的后面加上0</dev/null 1>;/dev/null 2>;/dev/null 是输出设备重定向一下 |
使用nohup,但在最后加上&符号,来后台运行。这样本地就木有进程了。
我的命令是这样的:
ssh root@192。168.80.21 "/usr/bin/runyj -q YJ.INITQ.QUEUE &"
其中/usr/bin/runyj 是一个不会退出的进程
这样的话,ssh也就不会退出来
我就用下面的命令使ssh在后台执行
ssh root@192.168.80.21 "/usr/bin/runyj -q YJ.INITQ.QUEUE &" &
这样有个问题就是在本地始终有这个ssh进程,无法退出,除非强制Kill掉
而且强制Kill掉后,在远程执行的进程/usr/bin/runyj也会被Kill掉
如何能使ssh退出而远程执行的命令继续执行呢?
ssh的信用机制都建好了,远程运行shell脚本也都没问题,现在出现了一种这样的情况:
- ssh 10.*.*.* "test.sh"
现在我是想这个脚本执行完后能够正常返回,但是这个脚本虽然执行成功了,但在终端的地方一直停在那里,需要使用 Ctrl+C才能退出来,而脚本中的动作确实也都做成功了,我想知道这种情况怎么去寻找原因,怎么去解决呢?
该脚本在本地执行没有这种情况,执行完就直接返回了。
在test.sh中是需要启动一个应用程序,比如"testserver",在脚本中启动的语句是:
- $PATH/testserver --port $PORT >> /dev/null &
我觉得可能是启动这个程序所引起的问题,因为其他的脚本起其他的程序也都没问题,所以就在这一句上改过,输出重定向也改过几种了,不见效,希望大家知道的给点指引。
多谢多谢。
ssh的信用机制都建好了,远程运行shell脚本也都没问题,现在出现了一种这样的情况:
- ssh 10.*.*.* "test.sh"
现在我是想这个脚本执行完后能够正常返回,但是这个脚本虽然执行成功了,但在终端的地方一直停在那里,需要使用 Ctrl+C才能退出来,而脚本中的动作确实也都做成功了,我想知道这种情况怎么去寻找原因,怎么去解决呢?
该脚本在本地执行没有这种情况,执行完就直接返回了。
在test.sh中是需要启动一个应用程序,比如"testserver",在脚本中启动的语句是:
- $PATH/testserver --port $PORT >> /dev/null &
我觉得可能是启动这个程序所引起的问题,因为其他的脚本起其他的程序也都没问题,所以就在这一句上改过,输出重定向也改过几种了,不见效,希望大家知道的给点指引。
多谢多谢。
我也遇到这样的问题。
/etc/init.d/runjboss.sh restart >/dev/null 2>&1 是可以退出的
/etc/init.d/runjboss.sh restart 不可以退出
runjboss是HA用,启动jboss的脚本。
这个为什么会是这样,求大侠指导。