在Linux中,nohup
命令(no hang-up的縮寫)可以使進程忽略掛起(SIGHUP)信號,從而在用戶退出登錄后繼續運行
使用nohup
命令啟動任務:
nohup your_command &
這里,your_command
是你要運行的命令。&
符號將命令放入后臺運行。
重定向輸出:
默認情況下,nohup
會將輸出重定向到名為nohup.out
的文件。如果你想將輸出重定向到其他文件,可以使用以下命令:
nohup your_command > output_file 2>&1 &
這里,output_file
是你希望將輸出保存到的文件名。2>&1
表示將標準錯誤(2)重定向到標準輸出(1),這樣錯誤信息也會被保存到output_file
中。
使用systemd
創建服務:
如果你希望任務在系統啟動時自動運行,或者在其他任務失敗時自動重啟,可以考慮使用systemd
創建一個服務。首先,創建一個名為your_service.service
的文件,內容如下:
[Unit]
Description=Your service description
[Service]
ExecStart=/path/to/your_command
Restart=always
User=your_username
Group=your_groupname
Environment=ENV_VAR_NAME=value
[Install]
WantedBy=multi-user.target
這里,Description
是服務的描述;ExecStart
是要運行的命令;Restart
設置為always
表示任務總是自動重啟;User
和Group
分別設置運行任務的用戶和組;Environment
用于設置環境變量。
將此文件保存到/etc/systemd/system/
目錄下,然后運行以下命令啟用并啟動服務:
sudo systemctl enable your_service.service
sudo systemctl start your_service.service
現在,你的任務將在系統啟動時自動運行,并在其他任務失敗時自動重啟。你可以使用systemctl status your_service.service
命令查看服務狀態。