深入解析nohup和&的异同

avatar
作者
筋斗云
阅读量:0
nohup和&都是用于在后台运行命令,使命令在终端关闭后仍然继续执行。不同之处在于,nohup会将命令的输出重定向到nohup.out文件,而&不会。
深入解析nohup和&的异同-图1(图片来源网络,侵删)

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不同,当用户退出登录或关闭终端时,使用&符号运行的进程将被终止。

深入解析nohup和&的异同-图2(图片来源网络,侵删)

使用&的命令格式如下:

 command [arguments] & 

要在后台运行一个名为my_script.sh的脚本,可以使用以下命令:

 ./my_script.sh & 

3. 异同点

- 相同点:

- 都可以将进程放入后台运行,不阻塞终端。

- 不同点:

- Nohup可以在用户退出登录或关闭终端后继续运行进程,而&无法实现这一点。

- Nohup会将标准输入、输出和错误重定向到一个名为nohup.out的文件,而&不会进行重定向。

深入解析nohup和&的异同-图3(图片来源网络,侵删)

相关问题与解答

Q1: 如何在后台运行一个进程,即使关闭终端也能继续运行?

A1: 使用nohup命令,nohup ./my_script.sh &

Q2: 如何查看使用nohup运行的进程的输出?

A2: 查看nohup.out文件,因为nohup会将标准输入、输出和错误重定向到这个文件,可以使用cat nohup.out命令查看文件内容。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!