即使我退出,如何在后台继续运行unix程序?

Kar*_*lek 7 unix

我想在unix机器上运行带有一些while(1)循环的Perl脚本,直到我杀了它.

这是一台我没有管理权限的远程计算机(因此出于某种原因,我不能使用Daemon :: Generic :: While1),我通过SSH登录它,我希望它继续运行我退出了.

我发现的一种方法是将这样的东西写成bash:

nohup ./my_script.pl &
Run Code Online (Sandbox Code Playgroud)

还有其他更好的方法吗?

在该计算机上禁止编辑crontab(同时运行后台和持久进程).

Yuv*_*dam 18

我首选的方法,可以说是最简单的方法,使用screen:

screen -d -m ./myProcess
Run Code Online (Sandbox Code Playgroud)


use*_*579 6

你需要关闭stdout,stderr,stdin,否则你仍然绑定到那个特定的TTY

./my_script.pl >/dev/null 2>&1 </dev/null &
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.