我指的是需要持续运行的代理程序,然后是挖矿程序。它们都需要自己的窗口,我正在尝试编写一个脚本,以便可以在我的主机上运行它。我有一台主机和几台钻机,如果我的钻机出现故障,我想通过 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