Linux 使用 nohup 和 & 让程序在后台执行

实验脚本

import time

def main():
    while True:
        print('hello world!')
        time.sleep(1)

if '__main__' == __name__:
    main()

正常执行

运行 python hello.py,终端会持续输出信息。如果键入Ctrl+C ,程序会收到一个SIGINT信号,默认终止运行。

使用 & 执行

运行 python hello.py &,终端会显示一个进程号,并持续输出信息,如果键入Ctrl+C ,程序会收到一个SIGINT信号,但会继续运行。

如果关闭当前会话SESSION,程序会收到一个SIGHUP信号,通过 ps aux | grep hello.py 看不到该进程,说明程序已经终止运行。

使用 nohup 执行

运行 nohup python hello.py,终端会显示一个 “忽略输入并把输出追加到"nohup.out” 的提示信息,除此之外没有其他输出(包括进程号和输出信息),如果关闭当前会话SESSION,程序会收到一个SIGHUP信号,通过 ps aux | grep hello.py 能看到该进程,说明程序还在继续运行。

如果键入Ctrl+C ,程序会收到一个SIGINT信号,终止运行。

使用 nohup 和 & 执行

如果键入Ctrl+C ,程序会收到一个SIGINT信号,但会继续运行;

如果关闭当前会话SESSION,程序会收到一个SIGHUP信号,但会继续运行;

可以通过 kill 命令终止进程。

你可能感兴趣的:(linux)