我想让这个脚本在我的 Debian Wheezy 服务器启动时运行:
/usr/bin/bitcoind
所以我去了:
$ sudo crontab -e
@reboot /usr/bin/bitcoind 2>&1 >/tmp/bitcoind.out &
然后保存并退出文件。crontab 通知我:
crontab: installing new crontab
然后我重新启动:
$ sudo shutdown -r 0
但是当我重新启动时,脚本没有运行:
$ ps aux | grep bitcoind
# *blank*
但我确实看到了这个条目/var/log/syslog
:
Dec 15 22:25:02 mypcname /USR/SBIN/CRON[2886]: (root) CMD (/usr/bin/bitcoind 2>&1 >/tmp/bitcoind.out &)
知道为什么这不起作用吗?
答案1
事实证明问题出在 bitcoind 而不是 cron 上。我没有将 bitcoind 配置为以 root 身份运行,因此它在启动时崩溃。我不知道为什么,但是 die 消息没有显示/tmp/bitcoind.out
。无论如何,当我尝试从命令行bitcoind
以 root 身份运行时,我得到了:
$ sudo bitcoind
Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/root/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=xxxxxxxxxxxxxxxxxxxxxxxxx
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" [email protected]
所以我通过以我的用户身份运行 bitcoind 来修复它:
$ sudo crontab -e # note that this is still root's crontab!
@reboot sudo -u myusername /usr/bin/bitcoind 2>&1 >/tmp/bitcoind.cron-out
现在它在启动时运行。也许把它放在我自己的 crontab 中会更好?我不确定这是否意味着它只在我以我的用户身份登录时运行?我今天晚些时候会再次测试它,如果有效的话,我会更新答案……
更新
是的,即使我没有登录,如果我从 root 的 crontab 中删除该条目,然后将其添加到我的用户的 crontab 中,它仍然会运行:
$ sudo crontab -e # note that this is still root's crontab!
<delete last line/>
<save and exit/>
crontab: installing new crontab
$ crontab -e
@reboot /usr/bin/bitcoind 2>&1 >/tmp/bitcoind.cron-out
crontab: installing new crontab