阅读量:0
nohup和&都是用于在后台运行命令,使命令在终端关闭后仍然继续执行。不同之处在于,nohup会将命令的输出重定向到nohup.out文件,而&不会。(图片来源网络,侵删)
Nohup和&的异同
在Linux系统中,nohup和&都是用于在后台运行进程的方法,但它们之间存在一些差异,下面我们将深入解析这两种方法的异同。
1. Nohup
Nohup(No Hang Up,不挂断)是一个命令行工具,用于在后台运行进程,即使用户退出登录或关闭终端,进程也会继续运行,Nohup的工作原理是将标准输入、输出和错误重定向到一个名为nohup.out的文件。
使用nohup的命令格式如下:
nohup command [arguments] &
要在后台运行一个名为my_script.sh的脚本,可以使用以下命令:
nohup ./my_script.sh &
2. &
&符号用于将命令放入后台运行,当在命令后添加&符号时,该命令将在后台运行,而不会阻塞终端,与nohup不同,当用户退出登录或关闭终端时,使用&符号运行的进程将被终止。
(图片来源网络,侵删)使用&的命令格式如下:
command [arguments] &
要在后台运行一个名为my_script.sh的脚本,可以使用以下命令:
./my_script.sh &
3. 异同点
- 相同点:
- 都可以将进程放入后台运行,不阻塞终端。
- 不同点:
- Nohup可以在用户退出登录或关闭终端后继续运行进程,而&无法实现这一点。
- Nohup会将标准输入、输出和错误重定向到一个名为nohup.out的文件,而&不会进行重定向。
(图片来源网络,侵删)相关问题与解答
Q1: 如何在后台运行一个进程,即使关闭终端也能继续运行?
A1: 使用nohup命令,nohup ./my_script.sh &
Q2: 如何查看使用nohup运行的进程的输出?
A2: 查看nohup.out文件,因为nohup会将标准输入、输出和错误重定向到这个文件,可以使用cat nohup.out
命令查看文件内容。