简介

  • nohup命令

nohup

在Linux中,nohup命令用于在后台运行程序,并忽略掉终端断开的信号(SIGHUP)。它允许您在终端退出后继续运行程序,同时将程序的输出重定向到指定的文件中。

以下是nohup命令的一般语法:

1
nohup command [arguments] [redirection]

其中,command是要运行的程序或命令,arguments是传递给程序的参数,redirection是输出重定向的选项。

以下是一些常见的nohup命令选项和用法:

  1. 后台运行程序:
    1
    
    nohup command &
    

    此命令将command程序在后台运行,并忽略终端断开信号。

  2. 输出重定向到文件:
    1
    
    nohup command > output.log 2>&1 &
    

    此命令将command程序的输出重定向到output.log文件中。2>&1将标准错误输出也重定向到相同的文件。

  3. 指定日志文件:
    1
    
    nohup command > output.log 2> error.log &
    

    此命令将标准输出重定向到output.log文件,将标准错误输出重定向到error.log文件。

  4. 追加到日志文件:
    1
    
    nohup command >> output.log 2>&1 &
    

    此命令将标准输出和标准错误输出追加到output.log文件中。

  5. 查看输出:
    1
    
    tail -f output.log
    

    使用tail -f命令实时查看output.log文件的内容,以便监控程序的输出。

请注意,nohup命令将程序放在后台运行,但它仍然会生成一个nohup.out文件,用于保存程序的输出。如果不想生成此文件,可以将输出重定向到其他文件。

使用nohup命令时,通常建议同时使用&符号将程序放在后台运行,并将输出重定向到文件,以确保程序在终端退出后继续运行,并且输出可以保存。

linux nohup命令 详解

nohup 命令用于在后台运行命令,即使当前终端会话关闭,也能保持命令的执行。这使得用户可以启动一个长时间运行的任务,而不必担心它是否会在终端关闭时终止。

基本语法:

1
nohup command [options] [arguments] &
  • command: 要在后台运行的命令。
  • optionsarguments: 命令的选项和参数。
  • &: 将命令放入后台运行。

示例:

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. 将输出重定向到文件:
    1
    
    nohup command > output.log &
    

    这将 command 的输出重定向到 output.log 文件,避免默认的 nohup.out

  2. 将输出同时追加到文件和终端:
    1
    
    nohup command > output.log 2>&1 &
    

    使用 2>&1 将标准错误(stderr)也重定向到标准输出,这样输出既会追加到文件中,也会在终端显示。

  3. 在后台运行脚本:
    1
    
    nohup ./script.sh arg1 arg2 > output.log &
    

    启动一个脚本,并将输出写入 output.log 文件,即使终端关闭,脚本也会在后台继续运行。

  4. 将进程挂起到后台:
    1
    
    nohup command > output.log &
    

    使用 & 将进程放入后台运行。如果你忘记在命令后添加 &,你可以使用 Ctrl+Z 暂停进程,然后使用 bg 命令将其放入后台。

  5. 查看正在运行的后台任务:
    1
    
    jobs
    

    使用 jobs 命令可以列出当前终端中正在运行的后台任务。每个任务都有一个唯一的编号。

  6. 将后台任务切换到前台:
    1
    
    fg %1
    

    使用 fg 命令将后台任务切换到前台。在这个例子中,%1 是任务的编号。

  7. 将后台任务放到后台运行:
    1
    
    bg %1
    

    使用 bg 命令将后台任务放到后台运行。同样,%1 是任务的编号。

  8. 将一个命令放到后台运行并立即脱离:
    1
    
    nohup command > output.log 2>&1 & disown
    

    disown 命令可以使任务脱离终端,这样它不会受到终端关闭的影响。

这些技巧可以帮助你更灵活地使用 nohup 命令来管理在后台运行的任务。