nohup
(no hang-up的缩写)是Linux系统中一个非常有用的命令,它允许用户在不挂断终端会话的情况下运行程序。这对于长时间运行的任务或需要在后台运行的程序特别有用。
基本命令格式:
nohup command [arguments] &
command
是你想要运行的命令。[arguments]
是传递给命令的参数。&
将命令放入后台运行。输出重定向:
默认情况下,nohup
会将命令的输出重定向到当前目录下的 nohup.out
文件中。如果你想将输出重定向到其他文件,可以使用以下格式:
nohup command [arguments] > output_file 2>&1 &
>
将标准输出重定向到指定文件。2>&1
将标准错误输出重定向到标准输出,即也写入同一个文件。&
将命令放入后台运行。运行一个简单的命令:
nohup ls -l &
这个命令会在后台运行 ls -l
,并将输出重定向到 nohup.out
文件。
将输出重定向到特定文件:
nohup python script.py > output.log 2>&1 &
这个命令会在后台运行 python script.py
,并将标准输出和标准错误输出都写入 output.log
文件。
查看后台任务:
你可以使用 jobs
命令查看当前终端会话中的后台任务:
jobs
终止后台任务:
如果你需要终止一个后台任务,可以使用 kill
命令。首先,找到任务的进程ID(PID),然后使用 kill
命令终止它:
kill PID
例如,如果 jobs
命令显示的PID是 12345,你可以使用:
kill 12345
nohup
命令会忽略挂起信号(SIGHUP),因此即使终端关闭,命令也会继续运行。nohup
时,建议将输出重定向到一个文件,以避免输出到终端导致混乱。cron
或 systemd
服务。通过这些基本用法和示例,你应该能够在Linux系统中有效地使用 nohup
命令来运行后台任务。