在Ubuntu中,有多种方法可以让进程在后台运行。以下是一些常用的方法:
使用&符号:
在命令的末尾加上&符号,可以让进程在后台运行。例如:
python my_script.py &
这样,my_script.py将在后台运行,你可以继续在终端中执行其他命令。
使用nohup命令:
nohup(no hang-up)命令可以让进程忽略挂起信号,即使关闭终端,进程也会继续运行。例如:
nohup python my_script.py &
这样,my_script.py将在后台运行,即使你关闭终端,它也会继续运行。输出将被重定向到名为nohup.out的文件。
使用screen或tmux工具:
screen和tmux是终端复用器,可以让你在一个终端窗口中运行多个会话。这样,你可以在一个会话中运行进程,然后将其置于后台,稍后再恢复。例如,使用screen:
screen -S my_session
python my_script.py
按下Ctrl+A,然后按下D将进程置于后台。要恢复会话,可以使用以下命令:
screen -r my_session
使用systemd服务:
对于需要长期运行的进程,可以创建一个systemd服务。首先,创建一个名为my_service.service的文件:
sudo nano /etc/systemd/system/my_service.service
在文件中添加以下内容(根据实际情况修改):
[Unit]
Description=My custom service
[Service]
ExecStart=/usr/bin/python /path/to/my_script.py
Restart=always
[Install]
WantedBy=multi-user.target
保存文件并退出。然后运行以下命令启用和启动服务:
sudo systemctl enable my_service.service
sudo systemctl start my_service.service
这样,my_script.py将作为systemd服务在后台运行,即使系统重启,它也会自动启动。你可以使用sudo systemctl stop my_service.service停止服务,或使用sudo systemctl restart my_service.service重启服务。