我该如何使用.sh启动脚本修复这个竞争条件问题?

我该如何使用.sh启动脚本修复这个竞争条件问题?

我在 Ubuntu 16.04 上尝试使用“启动应用程序”程序运行 .sh 脚本来启动“Vertcoin”钱包 v0.11.1.0

我找到了类似问题的答案,即让脚本删除 .lock 文件。我已经这样做了,但没有任何效果。启动时“启动应用程序”运行的 .sh 文件的内容。

#!/bin/bash
sleep 2
rm ~/.vertcoin/.lock
gnome-terminal -e
./vert/vertcoin-qt

重新启动程序(加密钱包)时会显示通常的启动框,但会出现错误消息...“无法启动 HTTP 服务器。有关详细信息,请参阅调试日志。”

“调试日志”显示...

Open database handle: wallet.dat/main
Database handles still open at environment close
Open database handle: wallet.dat/main
Database handles still open at environment close
Open database handle: wallet.dat/main
Database handles still open at environment close

我在 .sh 文件中尝试过更复杂的命令,例如

#!/bin/bash 
rm ~/.vertcoin/.lock  
sleep 2  
gnome-terminal -e
./vert/vertcoin-qt
killall ./vert/vertcoin-qt
sleep 2
./vert/vertcoin-qt

输入“killall ./vert/vertcoin-qt”,然后输入“./vert/vertcoin-qt”,即可手动启动钱包。但在启动时运行 .sh 脚本时,会出现相同类型的错误。在我的 .sh 脚本中,应该终止或启动哪个进程才能启动钱包?

我的错误照片

答案1

在脚本中,当您使用gnome-terminal -e命令来运行中的命令时gnome-terminal,命令需要与位于同一行gnome-terminal

例子:

gnome-terminal -e './vert/vertcoin-qt'
gnome-terminal -e 'killall ./vert/vertcoin-qt'

上述命令将打开一个gnome-terminal窗口并killall./vert/vertcoin-qt其中运行。

希望这可以帮助!

答案2

打开钱包。关闭钱包。删除锁定文件。打开钱包。启动矿工和矿池。

#!/bin/bash
sleep 10
gnome-terminal -e '/home/eagle/vert/vertcoin-qt'
sleep 2

gnome-terminal -e 'killall /home/eagle/vert/vertcoin-qt'
sleep 2

gnome-terminal -e 'rm .vertcoin/.lock'
sleep 2

gnome-terminal -e '/home/eagle/vert/vertcoin-qt'
sleep 15

gnome-terminal -e '/usr/bin/python /home/eagle/p2pool2/p2pool-vtc/run_p2pool.py --net vertcoin node <PASSWORD>'
sleep 3

gnome-terminal -e '/home/eagle/ccminer/ccminer/ccminer -a lyra2v2 -i 20 -o stratum+tcp://127.0.0.1:9171/ -u VneboMA75nHf8HdBQxv36CRxy5xeK7n4nG -p miner'

相关内容