Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
退出非root用户的ssh后,如何保持Linux程序运行?_Linux_Debian - Fatal编程技术网

退出非root用户的ssh后,如何保持Linux程序运行?

退出非root用户的ssh后,如何保持Linux程序运行?,linux,debian,Linux,Debian,我已经搜索、谷歌搜索、在IRC坐了一个星期,甚至和一位忠实支持linux的朋友交谈过,但我还没有得到确切的答案 我已经编写了一个shell脚本,它在我登录到非root用户时立即运行,并且基本上只运行“/myprogram&”,不带引号。当我退出嘘我的程序超时,我无法连接到它,直到我重新登录。退出非root用户的SSH后,如何保持程序运行 我很好奇,这是否必须在项目层面上完成,还是什么?如果这不属于这里,我很抱歉,我不确定这是怎么回事。请尝试nohup: 退出ssh会话时,您的程序可能会收到SIG

我已经搜索、谷歌搜索、在IRC坐了一个星期,甚至和一位忠实支持linux的朋友交谈过,但我还没有得到确切的答案

我已经编写了一个shell脚本,它在我登录到非root用户时立即运行,并且基本上只运行“/myprogram&”,不带引号。当我退出嘘我的程序超时,我无法连接到它,直到我重新登录。退出非root用户的SSH后,如何保持程序运行

我很好奇,这是否必须在项目层面上完成,还是什么?如果这不属于这里,我很抱歉,我不确定这是怎么回事。请尝试nohup:


退出ssh会话时,您的程序可能会收到SIGHUP信号。

有两个信号可能会导致您的程序在
ssh
会话结束后死亡:
SIGHUP
SIGPIPE

SIGHUP
将被发送到您的程序,因为父进程(
ssh
)已死亡。您可以通过使用程序
nohup
(即
nohup./myprogram&
)或通过使用shell内置的
disown
/myprogram&disown
)绕过此问题


断开
ssh
会话后,如果程序试图写入
stdout
stderr
,则将向程序发送
SIGPIPE
。要解决这个问题,请将它们重定向到一个文件或
/dev/null
,即
nohup./myprogram>/dev/null 2>/dev/null&
除了使用
nohup
,您还可以在终端多路复用器中像或一样运行您的程序。使用它们,您可以重新连接到会话,例如,如果您需要在不稳定的ssh连接上运行基于终端的交互式程序或长时间运行脚本,这将非常有用


screen

的一个很好的增强功能除了其他答案(
nohup
screen
,…)之外,您可能还想使用(或
at
)命令。而且
ssh
有一个
-f
选项,您可能会感兴趣。

+1用于考虑交互式流程。也是我第一次听说boybu。。。听起来很有趣