我在注销后如何在Unix上运行Perl脚本?

Che*_*eso 1 scheduling keep-alive nohup at-job

我有一个需要很多时间才能完成的脚本.

我宁愿退出并稍后检索其输出,而不是等待它完成.

我试过了;

at -m -t 03030205 -f /path/to/./thescript.pl

nohup /path/to/./thescript.pl &

我还验证了这些进程实际存在psat -l依赖于我使用的调度语法.

当我退出shell时,这两个进程都会死掉.有没有办法在关闭连接时阻止脚本终止?

我们这里有crons并且它们已经设置好并且正常工作,但我想使用atnohup用于一次性脚本.

我的语法有问题吗?有没有其他方法可以产生预期的结果?


编辑:
我不能使用screendisown- 他们没有安装在我的HP Unix设置中,我也无法安装它们

Rob*_*gar 11

使用屏幕.它会创建一个终端,在您注销时继续运行.重新登录后,您可以切换回它.

  • 屏幕不会出错.花几分钟时间学习并熟悉它.值得您花时间下线. (2认同)

Ale*_*lds 5

如果要在注销后继续运行进程:

disown -h <pid>

是一个有用的bash内置.与之不同nohup,您可以disown在已经运行的进程上运行.

首先,使用control-Z停止工作,从ps(或使用echo $!)获取pid ,使用bg将其发送到后台,然后使用disown-h标志.

不要忘记背景你的工作,否则当你注销时它会被杀死.