nohub:后台执行

一、命令简介

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​ 脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值