nohup
命令用于在后台运行命令,即使终端关闭也不会中断进程。默认情况下,nohup
会忽略挂起信号(如 SIGHUP
),以防止进程在终端关闭时被终止。
如果你想确保 nohup
命令忽略挂起信号,可以使用以下方法:
-
使用
nohup
命令:nohup your_command &
这会将
your_command
放到后台运行,并且忽略挂起信号。 -
使用
disown
命令: 如果你已经启动了一个进程,可以使用disown
命令将其从当前 shell 的作业表中移除,从而忽略挂起信号。your_command & disown
-
使用
trap
命令: 你可以在脚本中使用trap
命令来捕获并忽略挂起信号。#!/bin/bash trap '' SIGHUP your_command & wait $!
-
使用
setsid
命令:setsid
命令可以创建一个新的会话,并将进程设置为该会话的领头进程,从而忽略挂起信号。setsid your_command &
通过以上方法,你可以确保在使用 nohup
或其他方式运行命令时,挂起信号被忽略,进程在终端关闭后仍然继续运行。