无法在 Debian 7 中启动时运行脚本

无法在 Debian 7 中启动时运行脚本

我想让这个脚本在我的 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

相关内容