我可以使用 bin bash 脚本启动两个需要在两个单独窗口中运行的单独进程吗?UBUNTU 14.04.3

我可以使用 bin bash 脚本启动两个需要在两个单独窗口中运行的单独进程吗?UBUNTU 14.04.3

我指的是需要持续运行的代理程序,然后是挖矿程序。它们都需要自己的窗口,我正在尝试编写一个脚本,以便可以在我的主机上运行它。我有一台主机和几台钻机,如果我的钻机出现故障,我想通过 SSH 连接到我的主机并执行一个脚本,该脚本将通过 SSH 连接到该钻机并执行所述操作。

运行 Ubuntu 14.04.3 服务器

#!bin/bash
cd ~/adl3
./atitweak -f 100 -p 20
cd ~/eth-proxy
sudo python ./eth-proxy.py
aticonfig —adapter=ALL —odsc=1060,300
aticonfig —adapter=ALL -odcc
cd ~/cpp-ethereum/build/ethminer
./ethminer —farm-recheck 150 —cl-local-work 256 -G -F http://127.0.0.1:8080/foxtrot
exit 0

答案1

是的,可以使用setsid命令。我会将您的脚本重写如下:

#!bin/bash
cd ~/adl3
./atitweak -f 100 -p 20
cd ~/eth-proxy
setsid gnome-terminal -e 'sudo python ./eth-proxy.py'
aticonfig —adapter=ALL —odsc=1060,300
aticonfig —adapter=ALL -odcc
cd ~/cpp-ethereum/build/ethminer
setsid gnome-terminal -e './ethminer —farm-recheck 150 —cl-local-work 256 -G -F http://127.0.0.1:8080/foxtrot'
exit 0

或者,也可以nohup command &像这样使用。请注意,nohup将写入一个文件nohup.out来存储命令的输出,尽管重定向到/dev/null将阻止这样做。

如果您需要隐藏脚本的输出,请&> /dev/null 在命令行上添加所需的特定命令或整个脚本,例如:

./my_script.sh &> /dev/null

如果多个命令需要sudo,则将其附加到命令行上对脚本的调用的开头,尽管这样您将必须使用完整路径而不是扩展。事实上,如果您在脚本中~输入完整路径而不是 ,它将为您节省几行脚本(并确保正确执行) 。~

答案2

在标准的 Ubuntu Unity Desktop 上,您将可以gnome-terminal使用。在 Kubuntu 上,它可能是konsole

要启动一个新终端/窗口并在其中运行命令,您可以输入

gnome-terminal -e "sudo python ./eth-proxy.py"

或者

konsole -e "sudo python ./eth-proxy.py"

的命令行看起来ethminer很相似。


另外,您也可以在后台运行命令并重定向输出,例如

python ./eth-proxy.py >/tmp/eth-proxy.log 2>&1 &

然后偶尔用以下方法查看输出tail

tail -f /tmp/eth-proxy.log

相关内容