У меня, кажется, есть некоторые проблемы с автоматизацией некоторых сервисов при запуске. У меня была эта проблема прежде, но я не мог узнать точную причину, что вызвало это.
Я добавил оба сервиса для запущений с:
$ sudo update-rc.d sickbeard defaults
Затем:
$ sudo service sickbeard status
* sickbeard is not running
$ sudo service sabnzbdplus status
* SABnzbd+ binary newsgrabber: not running
$ service --status-all
[ + ] acpid
[ - ] rsync
[ + ] rsyslog
[ - ] sabnzbdplus
[ + ] saned
[ ? ] sendsigs
[ - ] sickbeard
(список является усеченным), Снимок экрана от администратора заданий:
Поскольку Вы видите, что приложение не запускается при начальной загрузке... Что могло бы вызывать это?
Хорошо, я обнаружил проблему, вызывающую это. Возможно, другие люди столкнутся с той же проблемой.
Мой диск зашифрован, поэтому его можно прочитать только после входа в систему. Все конфигурации программы находятся в / home / username, поэтому не читаются. Это приводит к сбоям в работе служб.
Исправление, которое я написал:
#!/bin/bash -vx
DIR=/home/mainstream/.sabnzbd
sleep 10
function checkdir() {
if [ ! -d "$DIR" ];
then
echo "File $DIR doesn't exist yet"
sleep 5 && checkdir #loop to check if directory is ready
else
echo "Directory $DIR exists"
/etc/init.d/sabnzbdplus start && /etc/init.d/sickbeard start && /etc/init.d/autosub start && /etc/init.d/couchpotatov2 start
fi
}
checkdir
Оно проверяет, существуют ли папки (каждые 5 секунд), и соответственно запускает службы. Добавьте его (например, в rc.local). Пример 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.
sleep 10
exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file
exec 1>&2 # send stdout to the same log file
set -x # tell sh to display commands before execution
#/home/mainstream/.startup.sh
/opt/startup.sh
exit 0
Вывод сценария:
checkdir
+ checkdir
+ '[' '!' -d /home/mainstream/.sabnzbd ']'
+ echo 'File /home/mainstream/.sabnzbd doesn'\''t exist yet'
File /home/mainstream/.sabnzbd doesn't exist yet
+ sleep 5
+ checkdir
+ '[' '!' -d /home/mainstream/.sabnzbd ']'
+ echo 'File /home/mainstream/.sabnzbd doesn'\''t exist yet'
File /home/mainstream/.sabnzbd doesn't exist yet
+ sleep 5
+ checkdir
+ '[' '!' -d /home/mainstream/.sabnzbd ']'
+ echo 'File /home/mainstream/.sabnzbd doesn'\''t exist yet'
File /home/mainstream/.sabnzbd doesn't exist yet
+ sleep 5
+ checkdir
+ '[' '!' -d /home/mainstream/.sabnzbd ']'
+ echo 'Directory /home/mainstream/.sabnzbd exists'
Directory /home/mainstream/.sabnzbd exists
+ /etc/init.d/sabnzbdplus start
* Starting SABnzbd+ binary newsgrabber
...done.
+ /etc/init.d/sickbeard start
* Starting SickBeard
...done.
+ /etc/init.d/autosub start
Starting AutoSub
AutoSub: Initializing variables and loading config
AutoSub: Starting as a daemon
AutoSub: Initializing variables and loading config
AutoSub: Starting as a daemon
AutoSub: Initializing variables and loading config
AutoSub: Starting as a daemon
AutoSub: Disabling console output for daemon.
+ /etc/init.d/couchpotatov2 start
* Starting CouchPotatoV2
...done.
+ exit 0
Наконец мы обнаружили, что больная борода
запускаются при загрузке, но не удается.
В /var/log/boot.log
мы видим эту ошибку:
Starting SickBeard
/usr/bin/python: can't open file 'SickBeard.py': [Errno 2] No such file or directory
и просматривая сценарий инициализации sickbeard
:
APP_PATH=${SB_HOME-/opt/sickbeard}
по какой-то причине мы не знаем, когда запускается sickbeard
, / opt
не готов.
В качестве временного решения запуск sickbeard
позже во время загрузки последовательность, кажется, решает проблему.
Для этого взгляните на папку /etc/rcX.d
и удалите файлы Sxxsickbeard
и Kxxsickbeard
. Это символические ссылки на сценарий /etc/init.d/sickbeard
.
Этот сценарий выполняется во время загрузки системы в алфавитном порядке, поэтому с помощью update-rc.d
он можно выбрать «когда» запуск / остановка службы, например:
update-rc.d sickbeard start 99 2 3 4 5 . stop 01 0 1 6 .
Это назначит S99
(последний из возможных) для запуска
во время загрузки системы и K01
] (первое возможное) для остановить
во время завершения работы или перезагрузки.
В этом случае, глядя на ваш уровень выполнения , я предлагаю следующую конфигурацию:
update-rc.d sickbeard start 06 2 3 4 5 . stop 01 0 1 6 .