简介
- nohup命令
nohup
在Linux中,nohup
命令用于在后台运行程序,并忽略掉终端断开的信号(SIGHUP)。它允许您在终端退出后继续运行程序,同时将程序的输出重定向到指定的文件中。
以下是nohup
命令的一般语法:
1 | nohup command [arguments] [redirection] |
其中,command
是要运行的程序或命令,arguments
是传递给程序的参数,redirection
是输出重定向的选项。
以下是一些常见的nohup
命令选项和用法:
后台运行程序:
1
nohup command &
此命令将
command
程序在后台运行,并忽略终端断开信号。输出重定向到文件:
1
nohup command > output.log 2>&1 &
此命令将
command
程序的输出重定向到output.log
文件中。2>&1
将标准错误输出也重定向到相同的文件。指定日志文件:
1
nohup command > output.log 2> error.log &
此命令将标准输出重定向到
output.log
文件,将标准错误输出重定向到error.log
文件。追加到日志文件:
1
nohup command >> output.log 2>&1 &
此命令将标准输出和标准错误输出追加到
output.log
文件中。查看输出:
1
tail -f output.log
使用
tail -f
命令实时查看output.log
文件的内容,以便监控程序的输出。
请注意,nohup
命令将程序放在后台运行,但它仍然会生成一个nohup.out
文件,用于保存程序的输出。如果不想生成此文件,可以将输出重定向到其他文件。
使用nohup
命令时,通常建议同时使用&
符号将程序放在后台运行,并将输出重定向到文件,以确保程序在终端退出后继续运行,并且输出可以保存。
linux nohup命令 详解
nohup
命令用于在后台运行命令,即使当前终端会话关闭,也能保持命令的执行。这使得用户可以启动一个长时间运行的任务,而不必担心它是否会在终端关闭时终止。
基本语法:
1 | nohup command [options] [arguments] & |
command
: 要在后台运行的命令。options
和arguments
: 命令的选项和参数。&
: 将命令放入后台运行。
示例:
1 | nohup ./long_running_script.sh > output.log & |
这个例子将 long_running_script.sh
脚本以后台进程运行,并将输出重定向到 output.log
文件。即使你关闭终端,long_running_script.sh
仍会继续运行。
注意:
- 默认情况下,
nohup
的输出会追加到一个文件名为nohup.out
的文件中。如果你希望自定义输出文件,可以使用重定向符号(如> output.log
)。 nohup
启动的进程会忽略SIGHUP
信号,这是为了确保即使终端关闭,进程也能继续运行。
linux nohup命令 常用技巧
以下是一些在使用 nohup
命令时的一些常用技巧:
将输出重定向到文件:
1
nohup command > output.log &
这将
command
的输出重定向到output.log
文件,避免默认的nohup.out
。将输出同时追加到文件和终端:
1
nohup command > output.log 2>&1 &
使用
2>&1
将标准错误(stderr)也重定向到标准输出,这样输出既会追加到文件中,也会在终端显示。在后台运行脚本:
1
nohup ./script.sh arg1 arg2 > output.log &
启动一个脚本,并将输出写入
output.log
文件,即使终端关闭,脚本也会在后台继续运行。将进程挂起到后台:
1
nohup command > output.log &
使用
&
将进程放入后台运行。如果你忘记在命令后添加&
,你可以使用Ctrl+Z
暂停进程,然后使用bg
命令将其放入后台。查看正在运行的后台任务:
1
jobs
使用
jobs
命令可以列出当前终端中正在运行的后台任务。每个任务都有一个唯一的编号。将后台任务切换到前台:
1
fg %1
使用
fg
命令将后台任务切换到前台。在这个例子中,%1
是任务的编号。将后台任务放到后台运行:
1
bg %1
使用
bg
命令将后台任务放到后台运行。同样,%1
是任务的编号。将一个命令放到后台运行并立即脱离:
1
nohup command > output.log 2>&1 & disown
disown
命令可以使任务脱离终端,这样它不会受到终端关闭的影响。
这些技巧可以帮助你更灵活地使用 nohup
命令来管理在后台运行的任务。