进程、后台进程以及信号
等待 stdin
|
nohup
命令用于启动一个命令,它将忽略 hangup 信号并将 stdout 和 stderr 附加到文件。默认文件是 nohup.out 或 $HOME/nohup.out。如果文件不可写,那么命令将不运行。如果希望将输出发送到别处,那么对 stdout 或 stderr 进行重定向。
如果需要多次运行 ps
来查看变化,那么可能需要使用 top
命令。它显示不断更新的进程列表,以及有用的总结信息。
kill
命令向指定的作业或进程发送信号。清单显示使用 SIGTSTP 和 SIGCONT 信号停止并恢复后台作业。使用 SIGTSTP 信号相当于使用 fg
命令将作业带到前台,然后使用 Ctrl-z 暂停它。使用 SIGCONT 相当于使用 bg
命令。
|
nohup
命令使进程对于 SIGHUP 信号“免疫”。一般情况下,进程可以实现信号处理程序 来捕获 信号。所以进程可以实现一个信号处理程序来捕获 SIGINT 或 SIGTERM。因为信号处理程序知道信号已经发送了,它可以选择采取什么操作,例如忽略 SIGINT,只在收到 SIGTERM 时终止进程。
某些信号不能被捕获,比如某些硬件异常。SIGKILL 不能被捕获,它会无条件地终止进程。一般来说,只有在其他方式都无法终止进程时才需要发送这个信号。