我在一个系统上连接了 10 个 GPU,想要用它们全部进行挖掘,但是 ubuntu GUI 不允许同时运行 10 个 GPU,因此需要使用命令行并在那里进行挖掘。
现在我想在系统启动时运行我的矿工,特别是我正在关注的这教程(步骤 7)。我已按照教程完成所有操作,但无法在屏幕会话中启动 ./start_only_eth.bash 命令(未创建屏幕会话)。
如果我正在执行以下命令,我可以使用“screen -ls”命令找到该会话。
screen -dmS ethm
以下是我的脚本(demo.sh)
// 更新
#!/bin/bash
DEFAULT_DELAY=0
if [ "x$1" = "x" -o "x$1" = "xnone" ]; then
DELAY=$DEFAULT_DELAY
else
DELAY=$1
fi
sleep $DELAY
su aman -c "screen -dmS ethm /home/aman/Desktop/claymore/start_only_eth.bash"
我已在 rc.local 文件中添加了此脚本的路径,如这教程(步骤 7)。
以下是我的 rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh '/home/aman/Desktop/demo.sh'
exit 0
重启后如果我执行“screen -ls”命令我会收到以下消息
No Sockets found in /var/run/screen/S-aman.
注意:我认为问题不在于 rc.local,而在于 demo.sh。如果尝试手动执行 demo.sh,脚本将失败并出现上述消息。
// // -------------------------- 使用 TMUX -------------------- // //
我也尝试过使用 tmux,这次我能够在 tmux 会话中运行 miner(手动),但再次无法使用 rc.local 运行脚本,下面是我的 demo.sh
#!/bin/bash
tmux new-session -d -n MINER
tmux send-keys -t MINER "cd /home/aman/Desktop/claymore" C-m
tmux send-keys -t MINER "./start_only_eth.bash" C-m
以下是我尝试测试 rc.local 时得到的内容(控制台)
aman@aman-System-Product-Name:~$ sudo /etc/init.d/rc.local start
[sudo] password for aman:
[ ok ] Starting rc.local (via systemctl): rc.local.service.
答案1
cd /home/Desktop/claymore
su aman -c "screen -dmS ethm ./start_only_eth.bash"
这样做有多个问题。首先,路径可能是/home/username/Desktop/claymore
。其次,cd
会影响当前脚本,并且可能不会通过 su 传送到屏幕上。
尝试:
su aman -c "screen -dmS ethm /home/username/Desktop/claymore/start_only_eth.bash"
如果脚本start_only_eth.bash
需要将 PWD 设置为该目录,请添加一行
cd /home/username/Desktop/claymore
作为脚本的第二行。
替换username
为实际的用户名。