Я хочу, чтобы этот скрипт запускался при запуске на моем сервере 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 ответ1

0

Оказалось, проблема была в биткойне, а не в 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" admin@foo.com

поэтому я исправил это, запустив 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? я не уверен, если это будет означать, что он запускается только когда я вхожу в систему как мой пользователь через? я проверю это позже позже сегодня и обновлю ответ, если это работает ...

Обновить

да, он все еще работает, даже когда я не авторизуюсь, если я удаляю запись из crontab root и затем добавляю ее в 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .