在Linux中,nohup
命令用于在不挂断终端的情况下运行命令
输出重定向的工作原理如下:
当你使用nohup
命令运行一个程序时,程序的标准输出(stdout)和标准错误(stderr)会被重定向到一个名为nohup.out
的文件中。如果指定了其他文件名,输出将被重定向到指定的文件。
为了实现输出重定向,nohup
命令会创建一个新的进程,并将程序的标准输出和标准错误重定向到指定的文件。这样,即使关闭终端或断开连接,程序的输出仍然会被保存在文件中。
默认情况下,nohup
命令会忽略挂起(SIGHUP)信号,这样即使关闭终端,程序也会继续运行。你可以使用signal
函数自定义程序对其他信号的处理方式。
使用nohup
命令进行输出重定向的基本语法如下:
nohup command > output_file 2>&1 &
这里,command
是你想要运行的命令,output_file
是输出重定向到的文件名。2>&1
表示将标准错误(2)重定向到标准输出(1),&
表示将命令放入后台运行。
例如,如果你想要在后台运行一个名为my_script.sh
的脚本,并将输出重定向到output.log
文件,你可以使用以下命令:
nohup ./my_script.sh > output.log 2>&1 &