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
或其他方式运行命令时,挂起信号被忽略,进程在终端关闭后仍然继续运行。