且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

linux下c++程序扔在后台运行,如何避免断开ssh会话,程序也关闭

更新时间:2022-04-24 16:35:14

方法一:

1
/usr/bin/nohup ./rec >/dev/null 2>&1 &       

方法二:

1
/usr/bin/setsid ./send >/dev/null 2>&1 &     

方法三:

1
(./rec >/dev/null 2>&1 &)     

方法四:针对已提交命令,可以使用disown

情况一:如果提交命令时已经用“&”将命令放入后台运行,则可以直接使用“disown”

1
2
3
4
5
$ ./rec &
[1] 11779
$ jobs
[1]+  Running                 ./rec &
$ disown -h %1

情况二、如果提交命令时未使用“&”将命令放入后台运行,可使用 CTRL-z 和“bg”将其放入后台,再使用“disown”

1
2
3
4
5
6
$ ./rec
^Z
[1]+  Stopped                 ./rec
bg %1
[1]+ ./rec &
$ disown -h %1

关于以下命令的讨论:

1
./rec >/dev/null 2>&1 &

以上方法是会把程序扔在后台运行,但是ssh会话关闭后,以下程序有可能会被关闭的

情况一:使用exit退出或logout,该程序还是会在后台运行存在的

情况二:强制退出,即直接关闭会话,该程序就不会在后台运行


本文转自 corasql 51CTO博客,原文链接:http://blog.51cto.com/corasql/1905349,如需转载请自行联系原作者