在Linux中后台运行程序
后台运行程序
由于网络等原因,当SSH链接断开后,该会话中的进程会收到内核发出的SIG_HUP(挂机)信号,默认情况下程序会结束运行。所以想要长期稳定地运行一个进程,可以将其放入后台。
-
一种简单方法是用shell的作业控制机制来实现。运行
python test.py
时,只需在shell中输入以下命令nohup python test.py >log.txt 2>&1 &
便可以让程序不响应SIG_HUP信号、放入后台运行,所有输出(stdout和stderr)都被重定向至log.txt文件中,直接用文本阅读器打开查看即可。可以使用
top
或ps -elf
来查看所有运行的进程,使用kill 进程PID
来结束进程。 -
另一种方法是借助
screen
和tmux
这种工具,创建一个与SSH无关的会话。