【问题标题】:How do I start multiple programs in the background, with subshells, and keep them attached?如何在后台启动多个程序,使用子shell,并保持它们连接?
【发布时间】:2016-12-21 16:17:45
【问题描述】:

我有许多程序,每个程序都位于我需要在后台运行的子目录中。

  • 它们都需要以自己的目录作为工作目录启动。
  • 它们都打印到我希望在终端中合并的标准输出。

我有以下脚本,但它不起作用:

#/bin/bash

(cd service1dir; service1) &
(cd service2dir; service2) &
(cd service3dir; service3) &
(cd service4dir; service4) &

只有一个程序启动,但我不知道为什么。

仅供参考,目标平台是 Windows 上的 git-bash,但我希望它也能在 macOS Sierra 上运行。

【问题讨论】:

    标签: bash git-bash


    【解决方案1】:

    我认为你不需要那些括号。但随后需要cd 回到该脚本的根目录。

    #!/bin/bash
    
    cd service1dir; service1 &
    cd -;
    cd service2dir; service2 &
    cd -;
    cd service3dir; service3 &
    cd -;
    cd service4dir; service4 &
    

    这适用于我在 linux bash 下。所有服务都在后台启动,同时输出到标准输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-15
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多