繁体   English   中英

在新的终端窗口中执行命令

[英]Execute a command in a new terminal window

我在ubuntu 17.04上,并且尝试按顺序执行一些命令,因此我编写了以下shell脚本:

#!


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

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

您的脚本停留在显示输出的第一个命令上,您可以通过在行尾添加“&”来使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”还是“ block”,所以如果需要,可以添加“ nohup”和“&”。

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

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

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

希望有帮助!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM