在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
重啟服務。