nohup 命令和 & 符号在 Linux 和 Unix 系统中都用于控制后台进程的执行,但它们的作用和使用场景有所不同。
nohup 是 “no hang up” 的缩写,它的作用是让一个进程忽略挂起(SIGHUP)信号。通常情况下,当用户退出登录时,系统会向所有与该用户相关的进程发送 SIGHUP 信号,导致这些进程终止。使用 nohup 命令可以让进程在用户退出登录后继续运行。
基本用法:
nohup command &
这里的 command 是你想要执行的命令,& 符号将命令放入后台执行。
& 符号用于将命令放入后台执行。当你在一个命令后面加上 & 符号时,该命令会在后台运行,而不会阻塞当前终端。这意味着你可以继续在终端中输入其他命令,而不必等待前面的命令完成。
基本用法:
command &
当你结合使用 nohup 和 & 符号时,你可以实现以下功能:
综合用法:
nohup command &
假设你想在后台运行一个名为 my_script.sh 的脚本,并且希望它在用户退出登录后仍然继续运行,你可以这样做:
nohup ./my_script.sh &
执行这个命令后,你会在终端看到类似以下的输出:
nohup: ignoring input and appending output to 'nohup.out'
这表示 my_script.sh 已经在后台运行,并且其输出会被追加到 nohup.out 文件中。
nohup 命令用于让进程忽略挂起信号,确保进程在用户退出登录后继续运行。& 符号用于将命令放入后台执行,不阻塞终端。nohup 和 & 可以实现后台运行且忽略挂起信号的命令。