当前位置: 首页 > Linux

Linux系统下如何将前台应用程序作为后台进程运行:nohup的使用和&命令

时间:2023-04-06 05:05:42 Linux

COMMAND&将前台进程变成后台进程。如果没有指定输出重定向(例如:COMMAND>out.log2>&1&),输出仍然打印到前台。退出shell会话(它的父进程),进程会收到一个HUP信号,从而退出。将INT信号发送到另一个shell会话中的进程,进程将退出。总结:COMMAND&窗体只是把前台进程放到了后台,但是进程输出还是在前台打印。此外,该过程不会忽略任何信号。前台进程的nohupCOMMAND形式不会变成后台进程。如果没有指定输出重定向(例如:nohupCOMMAND>out.log2>&1),那么标准输出和标准错误都被定向到nohup.out文件。退出shell会话(它的父进程),进程会收到HUP信号,但进程免疫HUP信号,不会退出。在进程前台按Ctrl+C,或者在另一个shell会话中给进程发送INT信号,进程就会退出。总结:nohupCOMMAND形式只是让前台程序忽略HUP信号(进程退出shell时不会退出),将进程标准输出和标准错误重定向到nohup.out文件。nohupCOMMAND&形式以上两种使用形式都不能满足作为后台进程运行的需要,所以nohup和&经常组合使用(nohupCOMMAND&),作用是:进程在后台运行。处理标准输出和标准错误被定向到nohup.out文件。该进程忽略了HUP信号,因此在退出shell会话时,它不会退出。或者,如果要将进程输出定向到另一个文件,可以使用nohupCOMMAND>/path/to/file2>&1&。如果你想忽略进程的输出,你可以使用nohupbin>/dev/null2>&1&。