nohup
(no hang-up)命令用于在后台运行程序,使程序在用户退出登录后仍然继续运行。要避免进程被挂断,可以使用以下方法:
-
使用
nohup
命令启动程序:nohup your_command &
这将在后台运行
your_command
,并将输出重定向到名为nohup.out
的文件。 -
使用
disown
命令将进程从当前shell会话中分离:your_command & disown
这将使
your_command
在后台运行,并在当前shell会话中分离,即使关闭终端或注销,进程也会继续运行。 -
使用
screen
或tmux
等终端复用器: 这些工具允许您创建多个终端会话,并在需要时重新连接。例如,使用screen
:screen -S your_session_name your_command
按
Ctrl
+A
,然后按D
将会话分离。要重新连接会话,请运行:screen -r your_session_name
-
使用
systemd
服务(适用于系统服务): 创建一个systemd
服务单元文件,例如/etc/systemd/system/your_service.service
,并添加以下内容:[Unit] Description=Your service description [Service] ExecStart=/path/to/your_command Restart=always User=your_user [Install] WantedBy=multi-user.target
然后运行以下命令启用和启动服务:
sudo systemctl enable your_service sudo systemctl start your_service
这将使您的程序作为系统服务运行,即使系统重启,也会自动启动。
通过使用这些方法,您可以确保进程在后台运行,避免因挂断而终止。