Bash 文件自动化

Bash 文件自动化

我有如下场景:

我有一个名为的 bash 文件infra.sh。在这个 infra.sh 文件中,我有以下命令:

#!/bin/bash
gnome-terminal -e 'sh -c "bash ./redis-server.sh && sleep 30"'    
gnome-terminal -e 'sh -c "bash ./redis-client.sh && sleep 30"'    
gnome-terminal -e 'sh -c "bash ./playServer.sh && sleep 30"'    
gnome-terminal -e 'sh -c "bash ./proclient-service.sh && sleep 30"'    
gnome-terminal -e 'sh -c "bash ./infoServer.sh"'

infra.sh现在如果我通过输入从终端执行

sudo sh ./infra.sh

然后,上述所有命令都会在单独的终端中执行。它们正在运行。

但我希望以这样一种方式启动,infra.sh即所有服务都在后台运行,并且我执行启动命令的终端infra.sh也将在后台运行。

是否可以?

提前致谢。

答案1

这里有两个选择:

  1. gnome-terminal <command> &:将在后台运行该命令,但如果终端关闭,该命令将会结束。

  2. nohup gnome-terminal <command> &:将在后台运行,即使终端窗口关闭仍会继续运行。

现在使用&nohup像这样nohup sudo sh ./infra.sh &运行该脚本sudo sh ./infra.sh &

相关内容