如何通过nohup命令保证Linux任务的可靠性
nohup
(no hang-up)命令是 Linux 系统中用于在后台运行程序的命令,即使关闭终端或断开连接,程序也会继续运行
-
使用
nohup
命令启动程序:nohup your_command &
其中,
your_command
是要执行的命令。&
符号将命令放入后台运行。 -
将输出重定向到文件:
默认情况下,
nohup
会将程序的输出发送到名为nohup.out
的文件。你可以使用以下命令将输出重定向到其他文件:nohup your_command > output_file 2>&1 &
这里,
output_file
是你希望将输出保存的文件名。2>&1
表示将标准错误(2)重定向到标准输出(1),&
符号将命令放入后台运行。 -
使用
disown
命令:如果你已经启动了一个程序,可以使用
disown
命令将其从当前 shell 的作业列表中移除,以防止在关闭终端时收到挂起信号:disown %job_number
其中,
job_number
是作业编号,可以通过jobs
命令查看。 -
使用
screen
或tmux
工具:screen
和tmux
是终端复用器,可以让你在一个终端窗口中运行多个会话。当你使用这些工具时,即使关闭终端或断开连接,程序也会继续运行。要使用这些工具,请先安装它们(如果尚未安装),然后按照以下步骤操作:-
启动
screen
或tmux
会话:screen
或
tmux
-
在新会话中运行你的命令,然后按
Ctrl-A
(对于screen
)或Ctrl-B
(对于tmux
),接着按D
键将会话分离并返回到原始终端。 -
若要重新连接到会话,请使用以下命令:
对于
screen
:screen -r session_id
对于
tmux
:tmux attach -t session_id
其中,
session_id
是会话ID,可以通过screen -ls
或tmux ls
命令查看。
-
通过以上方法,你可以使用 nohup
命令和其他工具来保证 Linux 任务的可靠性。