在新的终端窗口

时间:2017-06-20 15:11:14

标签: linux ubuntu

我在ubuntu 17.04上,我试图按顺序执行一些命令,所以我编写了这个shell脚本:

#!


sudo java -jar ~/Desktop/PlugtestServer.jar
sudo /opt/lampp/lampp start
sudo node httpServer.js

问题是在第一个命令之后,它执行PlugtestServer然后停止它,因为它是一个服务器并继续执行它。有一个命令可以自动打开一个新终端并在其中执行PlutestServer吗?

2 个答案:

答案 0 :(得分:0)

您的脚本保留在显示输出的第一个命令上,您可以通过添加"&"来使shell继续运行。到你的线的尽头。但是,如果您希望PlugTestServer在注销时保持运行,则可能仍然无法执行您想要的操作。为此你应该包括" nohup"这将保持命令运行,同时输出到文件。 所以,举个例子:

#!/bin/sh
nohup java -jar ~/Desktop/PlugtestServer.jar > plugtest.out & #Pipes output to plugtest.out, use /dev/null if you don't care about  output.
/opt/lampp/lampp start
node httpServer.js

注意我从脚本中删除了sudo。通常使用" sudo"来调用脚本通常会更好。除非你有特殊的理由,否则它至少会简化命令。

我不确定你的第二和第三个命令" fork"或者"阻止",所以添加" nohup"和"&"如果你需要。

答案 1 :(得分:0)

有一种方法可以使用gnome-terminal打开一个新的终端窗口并在其中执行命令 命令的示例格式为:

gnome-terminal -e "command you want to execute"

gnome-terminal -e "./your-script.sh arg1 arg2"

希望有帮助!