Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Всем доброго времени суток! Я понимаю, что созданная мной тема не имеет ни какого отношения к панели VESTA, но все же надеюсь на помощь. Пробовал сам, почитав различные мануалы, обращался на Русскоязычное сообщество Debian, но там только ответили
Есть скрипт xbt автозапуска XBT Tracker расположенный
Сам скрипт выглядит таким образом
Чтобы он заработал надо его сделать исполняемым и поставить в автозапуск такими командами
теперь он будет автоматически запускаться после перезагрузки системы, так же им можно управлять такими командами
Все это прекрасно работает для Debian 7.x
Но для Debian 8.x теми же командами скрипт не ставится в автозапуск, хотя вручную управляется нормально командами
Знаю что в Denian 8.x поменяли систему инициализации, нужно создать systemd юнит, после чего включить юнит в автозапуск при загрузке системы командой
К примеру чтобы запустить приведенный выше скрипт, у меня получилось примерно такое:
- сам systemd юнит у меня называться xbt.service и лежит тут
- и выглядит примерно так
- потом включаю юнит в автозапуск при загрузке системы так
- и получаю такое
Где, что упустил/пропустил/не то сделал?
В общем перепробовал создание различных конфигураций systemd юнитов и ни один не работает. Печально, то что работало без проблем на Debian 7.x, на Debian 8.x ни в какую не желает.
Заранее, всем кто откликнется и поможет разобраться, спасибо. Уверен, что решение довольно таки простое, но у меня пока не получается подружиться с systemd.
Может через cron запускать? На подобии такой команды
Только как сделать чтобы запускалось одноразово, а не через определенные промежутки времени?
И надо чтобы запускалось уже после apache2, nginx, mysql. Без mysql XBT Tracker вообще работать не будет.
У меня на VPS стоит Debian 7.10 с панелью VESTAпоменяли систему инициализации. Нужно создать systemd юнит
Есть скрипт xbt автозапуска XBT Tracker расположенный
Code: Select all
/etc/init.d/xbt
Code: Select all
#!/bin/bash
XBT_PATH="/home/xbt/Tracker"
case "$1" in
start)
echo "Start XBT Tracker"
cd $XBT_PATH
./xbt_tracker --conf_file xbt_tracker.conf
echo $?
;;
stop)
echo "Stop XBT Tracker"
kill `cat /var/run/xbt_tracker.pid`
echo $?
;;
restart)
kill `cat /var/run/xbt_tracker.pid`
sleep 2
cd $XBT_PATH
./xbt_tracker --conf_file xbt_tracker.conf
;;
*)
echo "Usage: /etc/init.d/xbt {start|stop|restart}"
exit 1
;;
esac
exit 0
Code: Select all
chmod +x /etc/init.d/xbt
update-rc.d xbt defaults
Code: Select all
/etc/init.d/xbt start
/etc/init.d/xbt stop
/etc/init.d/xbt restart
Но для Debian 8.x теми же командами скрипт не ставится в автозапуск, хотя вручную управляется нормально командами
Code: Select all
/etc/init.d/xbt start
/etc/init.d/xbt stop
/etc/init.d/xbt restart
Code: Select all
systemctl enable юнит
- сам systemd юнит у меня называться xbt.service и лежит тут
Code: Select all
/etc/systemd/system/xbt.service
Code: Select all
[Unit]
Description=xbt service
After=syslog.target
[Service]
ExecStart=/bin/bash '/etc/init.d/xbt'
Type=simple
[Install]
WantedBy=multi-user.target
Code: Select all
systemctl enable xbt
Code: Select all
Synchronizing state for xbt.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d xbt defaults
insserv: warning: script 'K01xbt' missing LSB tags and overrides
insserv: warning: script 'xbt' missing LSB tags and overrides
Executing /usr/sbin/update-rc.d xbt enable
update-rc.d: error: xbt Default-Start contains no runlevels, aborting.
В общем перепробовал создание различных конфигураций systemd юнитов и ни один не работает. Печально, то что работало без проблем на Debian 7.x, на Debian 8.x ни в какую не желает.
Заранее, всем кто откликнется и поможет разобраться, спасибо. Уверен, что решение довольно таки простое, но у меня пока не получается подружиться с systemd.
Может через cron запускать? На подобии такой команды
Code: Select all
sudo /etc/init.d/xbt start
И надо чтобы запускалось уже после apache2, nginx, mysql. Без mysql XBT Tracker вообще работать не будет.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Code: Select all
#!bin/bash
if [ $(pidof mysqld)>'0' ]
then
echo "Запускаем"
else
sleep 1m
echo "Пробуем снова"
fi
Code: Select all
while [[ $(pidof mysqld) == '' ]]
do
echo 'wait'
sleep 2s
done
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
userV, это Вы к чему? Мой вопрос не понятен? Нужен systemd юнит.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Я ответил на последний ВАШ вопрос. Как запустить скрипт после запуска mysql и т.д стандартной автозагрузкой.NORMANN wrote:userV, это Вы к чему? Мой вопрос не понятен? Нужен systemd юнит.
Что накосячили в systemd разбираться долго и муторно. Надеюсь кто то другой ответит.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Стандартной автозагрузкой, приведенный мной выше скрипт и так работает замечательно и запускается как надо, но в Debian 7.x, а вот в Debian 8.x этот способ уже не работает, нужен systemd юнитuserV wrote: стандартной автозагрузкой.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Быть такого не может. /etc/rc.local и update-rc.d ххх defaults не работают?NORMANN wrote:Стандартной автозагрузкой, приведенный мной выше скрипт и так работает замечательно и запускается как надо, но в Debian 7.x, а вот в Debian 8.x этот способ уже не работает, нужен systemd юнитuserV wrote: стандартной автозагрузкой.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Вы полностью читали мое первое сообщение? Я вроде и написал какую ошибку выдает. И если бы работало, то наверно и тему бы не создавал. Эта проблема началась только в 8-х версиях, до этого все прекрасно было и не один год.userV wrote: Быть такого не может. /etc/rc.local и update-rc.d ххх defaults не работают?
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
/etc/rc.local тоже просить дописать дефолтные уровни запуска? Что то ваш дебиан выделывается.NORMANN wrote:Вы полностью читали мое первое сообщение? Я вроде и написал какую ошибку выдает. И если бы работало, то наверно и тему бы не создавал. Эта проблема началась только в 8-х версиях, до этого все прекрасно было и не один год.userV wrote: Быть такого не может. /etc/rc.local и update-rc.d ххх defaults не работают?
https://wiki.debian.org/LSBInitScripts
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
Добавил в скрипт
при выполнении команды
ошибок не появилось, в rc0.d, rc1.d, rc6.d появилось K01xbt , в rc2.d, rc3.d, rc4.d, rc5.d появилось S03xbt,
но однако же после перезагрузки ОС автозапуск не просходит, так и приходится вручную запускать командой
В скрипте уже менял
на результат тот же. В принципе на Debian 7.x и так и так работает, в 8-й пока нет.
Но хоть сдвиг какой-то появился, что при установки в автозапуск уже ошибку не выдает.
С systemd юнит пока решил повременить, удалил его, пытаюсь без него.
Code: Select all
### BEGIN INIT INFO
# Provides: xbt
# Required-Start: $remote_fs $syslog $local_fs
# Required-Stop: $remote_fs $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start xbt at boot time
# Description: Enable service provided by xbt.
### END INIT INFO
Code: Select all
update-rc.d xbt defaults
но однако же после перезагрузки ОС автозапуск не просходит, так и приходится вручную запускать командой
Code: Select all
/etc/init.d/xbt start
Code: Select all
#!/bin/bash
Code: Select all
#!/bin/sh
Но хоть сдвиг какой-то появился, что при установки в автозапуск уже ошибку не выдает.
С systemd юнит пока решил повременить, удалил его, пытаюсь без него.
Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x
vi /etc/rc.local и перед exit
/home/xbt/Tracker/xbt_tracker --conf_file xbt_tracker.conf
:)
в /etc/init.d/ много примеров
/home/xbt/Tracker/xbt_tracker --conf_file xbt_tracker.conf
:)
в /etc/init.d/ много примеров