You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下nohup后台执行连续命令失败问题咨询

为什么第二个命令没执行?

核心原因是你只让nohup作用于第一个命令,后面的./command2不在nohup的执行序列和保护范围内。

你写的nohup ./command1 && ./command2 &中,nohup仅对./command1生效,&& ./command2是当前shell的后续命令逻辑。当整个命令串被&放到后台后,nohup启动command1后,后台shell的执行环境无法正确触发后续命令的执行,导致command2根本没被启动。用;的写法问题完全一样——nohup的作用范围还是只到第一个命令为止。

正确的写法

要让两个命令都在nohup保护下后台执行,需要把它们打包成一个整体交给nohup,推荐两种方式:

  1. 用sh -c执行命令串:

    nohup sh -c './command1 && ./command2' &
    

    如果不管command1执行成功与否都要运行command2,把&&换成;即可。

  2. 用大括号包裹命令组(注意大括号前后的空格,以及最后命令后的分号):

    nohup { ./command1 && ./command2; } &
    

这样nohup会作用于整个命令组合,两个命令会按顺序在后台执行,输出也会统一写入nohup.out(除非你手动重定向)。

内容的提问来源于stack exchange,提问作者H. Khani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:42:41