我使用以下命令在后台执行了一个 perl 脚本
nohup perl myPerlSCript.pl >debug_log &
几分钟后,我的状态为
[1]+ 已停止
我没想到它会停止,我也不知道是什么停止了它。我该如何调试它并找出它停止的原因?我实际上有兴趣了解要调试的 unix 命令。
我使用以下命令在后台执行了一个 perl 脚本
nohup perl myPerlSCript.pl >debug_log &
几分钟后,我的状态为
[1]+ 已停止
我没想到它会停止,我也不知道是什么停止了它。我该如何调试它并找出它停止的原因?我实际上有兴趣了解要调试的 unix 命令。
有几种方法可以停止在后台运行的进程。所有这些都涉及以下信号之一:
SIGSTOP
SIGTSTP
SIGTTOU
SIGTTIN
SIGSTOP
很严重。它是不可阻挡、不可忽视、不可处理的。SIGKILL
它会像杀死它一样肯定会停止该过程。其他的可以由后台进程处理以防止停止。
kill(2)
,或由该进程使用raise(3)
或发送给自身kill(2)
tostop
已启用(参见 的输出stty -a
)。这会生成SIGTTOU
.tcsetattr(3)
或等效项更改终端模式ioctl
。(这些与 显示的模式相同stty
。)无论标志SIGTTOU
的当前状态如何,都会生成。tostop
SIGTTIN
.这个列表可能非常不完整。
您是否有机会使用 tcsh ?Tcsh 实际上带有一个内置的 nohup 命令,我之前遇到过很多问题,看到了你所看到的确切行为。
/usr/bin/nohup
如果是这种情况,请尝试直接使用。