nohub:后台执行
侧边栏壁纸
  • 累计撰写 146 篇文章
  • 累计收到 2 条评论

nohub:后台执行

soulio
2024-09-23 / 0 评论 / 7 阅读 / 正在检测是否收录...

一、命令简介

nohup​ 用于在退出终端时保持进程在后台运行。

帮助

nohup --help

在线示例

curl cheat.sh/nohup

二、命令参数

nohup 命令
  • nohup​ 命令会忽略挂断(hangup)信号(SIGHUP​),允许执行的命令在用户注销后继续运行。
  • 通常与 &​ 符号结合使用,将命令放入后台执行。

选项

  • -n​: 将标准输出追加到文件而不是覆盖。
  • -p​: 不将进程 ID 写入到 nohup.out​ 文件中。

三、命令示例

  1. 基本用法
    启动一个命令,忽略挂断信号,并将输出重定向到 nohup.out​ 文件:

    nohup ./mycommand &
    
  2. 重定向输出到指定文件
    将输出重定向到名为 output.log​ 的文件:

    nohup ./mycommand > output.log &
    
  3. 追加输出到文件
    使用 -n​ 选项将输出追加到 output.log​ 文件:

    nohup -n ./mycommand >> output.log &
    
  4. 不写入进程 ID
    使用 -p​ 选项不将进程 ID 写入到输出文件:

    nohup -p ./mycommand > output.log &
    
  5. 在特定目录运行命令
    切换到特定目录,然后在该目录下运行命令:

    cd /path/to/directory
    nohup ./mycommand &
    
  6. 使用日期时间作为输出文件名
    将输出重定向到以当前日期时间命名的文件:

    nohup ./mycommand > "mycommand_$(date +%Y%m%d_%H%M%S).log" &
    

注意事项

  • nohup​ 不会影响标准错误输出。如果需要,你可以单独重定向标准错误输出:

    nohup ./mycommand > output.log 2>&1 &
    

    这将标准错误也重定向到 output.log​ 文件。

  • 如果不指定输出文件,nohup​ 默认将输出重定向到当前工作目录下的 nohup.out​ 文件。

  • 如果在执行 nohup​ 命令时没有指定 &​,则命令将在前台运行,即使 nohup​ 会使它忽略挂断信号。

  • nohup​ 命令在执行时不会将进程放入后台,所以需要与 &​ 结合使用来真正地使进程在后台运行。

  • 如果你的终端会话被关闭,使用 nohup​ 的进程通常不会受到影响,但如果你的系统关闭或重启,则进程会终止。对于确保进程在系统重启后继续运行,你可能需要使用其他工具,如 systemd​、cron​ 的 @reboot​ 功能或 init.d​ 脚本。

本文共 474 个字数,平均阅读时长 ≈ 2分钟
0

海报

正在生成.....

评论 (0)

取消