I want to define a simple service to be started at boot, being on Ubuntu server 16.10. So I have created a /etc/init.d/mydaemon
I somehow messed up between upstart and systemd: at first I thought I had to setup an upstart service. So after converting my file to an upstart syntax, I ran update-rc.d mydaemon defaults
.
I figured out my error and ran update-rc.d mydaemon remove
, converted to systemd syntax, and ran systemctl enable mydaemon
, but get the error:
mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
asked May 11, 2017 at 13:27
I had the same error when porting a sysv script from a redhat box to ubuntu. I needed to add some headers to the script
### BEGIN INIT INFO
# Provides: my-service-name
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO
found in https://askubuntu.com/questions/909523/default-start-contains-no-runlevels-aborting
answered Feb 14, 2018 at 11:31
nick foxnick fox
6416 silver badges8 bronze badges
2
The problem was the location of the file, on Ubuntu server it expects it in /etc/systemd/system
, /etc/init.d/
is for legacy files.
answered May 11, 2017 at 13:27
CharlesBCharlesB
5151 gold badge4 silver badges20 bronze badges
3
Just to add on to the answer from @CharlesB — when I got into this state I was able to simply move the file from /etc/init.d/
to /etc/systemd/system/
and rerun the command and it worked properly:
sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
answered Sep 6, 2017 at 9:45
CoryCory
3912 gold badges5 silver badges10 bronze badges
2
I had the same error and I fixed it putting the default start information, as follow:
vi /etc/init.d/greenbone-security-assistant
Change from:
# Default-Start:
to:
# Default-Start: 2 3 4 5
:wq
root@kali:/etc/init.d# systemctl enable greenbone-security-assistant
Synchronizing state of greenbone-security-assistant.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable greenbone-security-assistant
answered Jul 26, 2019 at 15:55
I want to define a simple service to be started at boot, being on Ubuntu server 16.10. So I have created a /etc/init.d/mydaemon
I somehow messed up between upstart and systemd: at first I thought I had to setup an upstart service. So after converting my file to an upstart syntax, I ran update-rc.d mydaemon defaults
.
I figured out my error and ran update-rc.d mydaemon remove
, converted to systemd syntax, and ran systemctl enable mydaemon
, but get the error:
mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
asked May 11, 2017 at 13:27
I had the same error when porting a sysv script from a redhat box to ubuntu. I needed to add some headers to the script
### BEGIN INIT INFO
# Provides: my-service-name
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO
found in https://askubuntu.com/questions/909523/default-start-contains-no-runlevels-aborting
answered Feb 14, 2018 at 11:31
nick foxnick fox
6416 silver badges8 bronze badges
2
The problem was the location of the file, on Ubuntu server it expects it in /etc/systemd/system
, /etc/init.d/
is for legacy files.
answered May 11, 2017 at 13:27
CharlesBCharlesB
5151 gold badge4 silver badges20 bronze badges
3
Just to add on to the answer from @CharlesB — when I got into this state I was able to simply move the file from /etc/init.d/
to /etc/systemd/system/
and rerun the command and it worked properly:
sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
answered Sep 6, 2017 at 9:45
CoryCory
3912 gold badges5 silver badges10 bronze badges
2
I had the same error and I fixed it putting the default start information, as follow:
vi /etc/init.d/greenbone-security-assistant
Change from:
# Default-Start:
to:
# Default-Start: 2 3 4 5
:wq
root@kali:/etc/init.d# systemctl enable greenbone-security-assistant
Synchronizing state of greenbone-security-assistant.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable greenbone-security-assistant
answered Jul 26, 2019 at 15:55
I’m trying to check if this solution would help me with auto restarting after shutdown.
But command sudo systemctl enable haltusbpower.service
is followed by error:
Synchronizing state of haltusbpower.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable haltusbpower
update-rc.d: error: haltusbpower Default-Start contains no runlevels, aborting.
My /usr/lib/systemd/system/haltusbpower.service
file:
[Unit]
Description=haltusbpower
Before=shutdown.target
DefaultDependencies=no
[Service]
ExecStart=/usr/local/bin/haltusbpower.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=shutdown.target
My /usr/local/bin/haltusbpower.sh
script:
#!/bin/bash
for i in /sys/bus/usb/devices/*/power/control;
do echo on > $i
done
It has execute option:
karol@karol:~$ ls -l /usr/local/bin/haltusbpower.sh
-rwxr-xr-x 1 root root 88 kwi 27 13:03 /usr/local/bin/haltusbpow
Why enabling haltusbpower doesn’t work? And what followed error means? I don’t understand where to look for errors.
asked Apr 27, 2017 at 11:25
1
At the top of your /usr/local/bin/haltusbpower.sh
script add something like this:
#!/bin/bash
### BEGIN INIT INFO
# Provides: haltusbpower
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Halts USB power...
### END INIT INFO
answered Jun 14, 2017 at 14:05
3
I had the same error message but it included a message about missing LSB tags and overrides
.
I looked in htop and had multiple processes tailing the log from when I tested the service using /usr/local/bin/./MyService.sh start
and /usr/local/bin/./MyService.sh stop
. Once I killed these processes it was successful.
The start and stop test command was taken from http://www.jcgonzalez.com/ubuntu-16-java-service-wrapper-example
answered Mar 2, 2018 at 17:51
I just wanted to repost the comment attached to original question as an answer since it was resolved my issue.
I had started with a shell script /etc/init.d/kafka
and was using that with a start and stop flag. I then wrote a SystemD unit file and placed it in /etc/systemd/system/kafka.service
. Many systemctl commands such as systemctl cat kafka
and systemctl status kafka
show that the unit-file was detected as the latter kafka.service
file, yet somehow old one in /etc/init.d conflicted with this. As soon as I removed it, I was able to enable the service.
I cannot find any documentation on this behavior.
answered May 30, 2020 at 0:38
I am trying to make my custom made daemon run at startup
and when I call
update-rc.d ydcd enable
I get the error
update-rc.d: using dependency based boot sequencing
update-rc.d: error: MyDaemon Default-Start contains no runlevels, aborting.
I’m running Debian wheezy, init is SysVinit.
Googling it does not give me any valuable info, so I come here as a last resort.
What’s going on here?
What do I need to change in my init.d script in order to make this work?
Edit:
Here’s the script:
#!/bin/bash
#
#ydcd.daemon
#
# chkconfig: 2345 85 15
# description: MyServiceName
# processname: MyServiceName
# source function library
. /lib/lsb/init-functions
RETVAL=0
NAME=ydcd.daemon
# YOU CAN SET ANY PATH BUT IS RECOMENDED TO USE THE DISTRO'S STANDARD ONE.
DAEMON=/home/debian/yd_cd/$NAME
prog=$(basename $DAEMON)
lockfile=/var/lock/$NAM
SVC_FILE=$DAEMON
start() {
if [ -f $SVC_FILE ]; then
#reset
echo -n "Starting "$SVC_FILE": "
RETVALS=$(start-stop-daemon -S -b -x $SVC_FILE -- -r)
Count=${#RETVALS[@]}
RETVAL="[FAIL]"
if [ $Count -eq 0 ]; then
RETVAL="[OK]"
elif [ $Count -eq 1 ]; then
if [ ${#RETVALS[0]} -eq 0 ]; then
RETVAL="[OK]"
else
iStart=${#SVC_FILE}
iLength=${#RETVALS[0]}
Response=${RETVALS[0]:(iStart+1):7}
RETVAL=$Response
if [ "$Response" == "already" ]; then
RETVAL="[OK]"
fi
fi
fi
echo $RETVAL
return 0
else
echo $SVC_ALIAS" not installed" $SVC_DIR
exit 2;
fi
}
stop() {
echo -n "Shutting down "$SVC_FILE":"
RETVALS=$(start-stop-daemon -K -x $SVC_FILE -- s)
#additional PROCKILLS=$(killall -w -q -e $SVC_PROCESS_NAME $SVC_FILENAME)
Count=${#RETVALS[@]}
Index=0
RETVAL="[FAIL]"
if [ $Count -eq 1 ]; then
if [ ${#RETVALS[0]} -eq 0 ]; then
RETVAL="[OK]"
else
Response=${RETVALS[0]:0:2}
RETVAL=$Response
if [ "$Response" == "No" ]; then
RETVAL="[OK]"
fi
fi
else
RETVAL="[OK]"
fi
echo $RETVAL
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $SVC_SERVICE_SCRIPT
;;
restart)
stop
start
;;
*)
echo $SVC_ALIAS" [Invalid Startup Parameters]"
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $?
- Печать
Страницы: [1] 2 Все Вниз
Тема: [Решено] Авто запуск Beanstalkd Worker (Прочитано 2007 раз)
0 Пользователей и 1 Гость просматривают эту тему.

Gordon Freeman
Здравствуйте!
Не оставляйте без внимания мой вопрос, если вы хоть что нибудь знаете расскажите.
Уже несколько недель пытаюсь решить проблему и не как не могу..
В системе стоит beanstalkd — сервер очередей…
Но это просто очередь заданий, а то что они должны выполнять это отдельный скрипт, который должен работать в фоне, как обычное приложение или демон… Проблема таки в том что не могу понять как запустить такой скрипт.
Сам код который будет выполнятся уже есть в ручную запускал в консоле все работает, но мне надо что бы запускался автоматом при запуске системы…
« Последнее редактирование: 20 Октября 2017, 22:28:06 от Gordon Freeman »

EvangelionDeath
Так как не указана версия Ubuntu, то вариант реализации зависит от вашей версии
1) Для систем с initd создать скрипт запуска и добавить в запуск при старте системы (14.04 и менее)
2) Создать конфигурацию для systemd (для 14.10 и выше) и добавить в автозапуск
3) Общие:
а) если вы используете графическую оболочку — добавить скрипт в запуск при логине
б) прописать скрипт в конфиг того shell, которым пользуетесь (если используете консоль)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Gordon Freeman
Так как не указана версия Ubuntu, то вариант реализации зависит от вашей версии
Ubuntu 16.04.1 LTS (GNU/Linux 2.6.32-042stab120.19 x86_64)
Для систем с initd создать скрипт запуска и добавить в запуск при старте системы (14.04 и менее)
В интернете столько всякого гавна, что не понятно что правильно а что нет… Подскажете простой пример запуска php скрипта?

EvangelionDeath
Gordon Freeman, Тогда сервис для Systemd
https://help.ubuntu.ru/wiki/systemd — общая инфа. По ссылкам на страничке более подробно все расписано.
Ну а сам Exec будет иметь примерно вид
Exec=/usr/bin/php /path/to/script
Еще есть вариант — добавить в крон
@reboot /usr/bin/php /path/to/script
Ну и сам сервис /lib/systemd/system/service-beanstalkd.service
[Unit]
Description=Start beanstalkd
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service
[Service]
ExecStart=/usr/bin/php /path/to/script
Type=oneshot
RemainAfterExit=yes
Restart=always
[Install]
WantedBy=multi-user.target
После чего выполняем:
sudo systemctl enable service-beanstalkd.service
sudo systemctl start service-beanstalkd.service
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Gordon Freeman
получился вот такое содержимое файла
[Unit]
Description=Beanstalkd Worker - Actions
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service
[Service]
ExecStart=/usr/bin/php /var/www/html/pdm/actions.php
Type=oneshot
RemainAfterExit=yes
Restart=always
[Install]
WantedBy=multi-user.target
Добавил файл в /etc/systemd/system
символьная ссылка создана в multi-user.target.wants
В консоле набераю
sudo systemctl status service-beanstalkd.service
выдает ошибку
service-beanstalkd.service - Beanstalkd Worker - Actions
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Если набераю в консоле
sudo systemctl start service-beanstalkd.service
выдает ошибку
Failed to start service-beanstalkd.service: Unit service-beanstalkd.service is not loaded properly: Invalid argument.
See system logs and 'systemctl status service-beanstalkd.service' for details.
Я же могу ее потом добавить в автозагрузку?
sudo update-rc.d service-beanstalkd.service enable
« Последнее редактирование: 20 Октября 2017, 19:22:02 от Gordon Freeman »

EvangelionDeath
Gordon Freeman,
sudo systemctl enable service-beanstalkd.service
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть — после этого покажите вывод
systemctl status service-beanstalkd.service
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

ARTGALGANO
а
sudo systemctl daemon-reload
сделали?

ecc83
выдает ошибку […] Invalid argument.

Gordon Freeman
Gordon Freeman,
sudo systemctl enable service-beanstalkd.service
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть — после этого покажите выводsystemctl status service-beanstalkd.service
Вот содержимое файла
[Unit]
Description=Beanstalkd Worker - Actions
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service
[Service]
ExecStart=/usr/bin/php "/var/www/html/pdm/actions.php"
Type=oneshot
RemainAfterExit=yes
Restart=always
[Install]
WantedBy=multi-user.target
Файл назвал actions.service, закинул его в /etc/systemd/system
вот какие ошибки были
http://i4.imageban.ru/out/2017/10/20/67f4617f3f476c1b53ad179950a30c03.png
…………………………………………………….
Если тот же файл залить в папку /lib/systemd/system, то вот ошибки
http://imageban.ru/show/2017/10/20/526e24f09109162a1be7f2a8342685d0/png
Пользователь добавил сообщение 20 Октября 2017, 20:46:25:
а
sudo systemctl daemon-reload
сделали?
А зачем??
Я же его добавляю, а не обновляю
Правила форума
1.5. Для добавления графических изображений в сообщения требуется использовать внешние сервисы. Подробную инструкцию, а так же список рекомендованных и запрещенных сервисов можно посмотреть в «Руководстве по добавлению изображений на форум»
+10% за повторную вставку полноразмерного изображения после полученного замечания!
Правила форума
2. На форуме ЗАПРЕЩЕНО
2.13. Самовольное модерирование форума, в том числе публикация замечаний другим пользователям, удаление примечаний и правок, внесённых администрацией форума и т.д. Если вы считаете, что необходимо принять административные меры (закрыть тему, удалить сообщение, привлечь к ответственности участника форума и т.п.), не нужно об этом писать в теме — воспользуйтесь кнопкой «Сообщить модератору».
+30%
—HP
« Последнее редактирование: 20 Октября 2017, 20:55:49 от Haron Prime »

ARTGALGANO
Gordon Freeman, сустемд нужно обновить для поиска новых или измененных юнитов

Gordon Freeman
Gordon Freeman, сустемд нужно обновить для поиска новых или измененных юнитов
Ааааааааааааааааааа, так а я же не знал зачем это….
Но все равно ошибки те же.

ARTGALGANO
Gordon Freeman, у вас еще скрипт в /etc/init.d/
update-rc.d:error: actions default-start contains no runlevels, aborting
пропишите заголовок
#!/bin/sh
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description:
### END INIT INFO
или удалите, оставьте ток системд юнит

EvangelionDeath
Gordon Freeman, Вы можете делать все по инструкции, а не в своей трактовке и потом писать об ошибках? Покажите ошибки, которые возникют в сервисе, что я описал.
« Последнее редактирование: 20 Октября 2017, 21:58:01 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Gordon Freeman
Вы можете делать все по инструкции, а не в своей трактовке и потом писать об ошибках?
EvangelionDeath Походу я что то пропустил….
1. Вы дали ссылку на общую инфу про Systemd
2. Потом предложили вариант с добавлением в Cron
3. И потом только пример файла service-beanstalkd.service
4. И выполнить две команды….
Ну так где инструкция?
Покажите ошибки, которые возникют в сервисе, что я описал.
Та я же давал ссылки на картинки….
Кроме того хочу обратить Ваше внимание на то, что пути должны быть относительными, символические ссылки не допустимы
Так они же сам создаются…
Пользователь добавил сообщение 20 Октября 2017, 22:06:39:
Все класссс!!!!!!!!!!!!
Запускается, даже автоматически. То что доктор прописал…
Но нарисовалась одна проблема…
Этот сервис запускается раньше чем сама система beanstalkd, из-за этого в лог файлах ошибка
Error displaying the error page: Application Instantiation Error: Socket error 111: Connection refused (connecting to localhost:11300)
Можно же как то поменять очередность запуска???
« Последнее редактирование: 20 Октября 2017, 22:06:39 от Gordon Freeman »

EvangelionDeath
Этот сервис запускается раньше чем сама система beanstalkd, из-за этого в лог файлах ошибка
Там выше под спойлером. Там уже описан порядок правильно.
А по поводу путей — нельзя в самом сервисе писать пути с символическими ссылками
« Последнее редактирование: 20 Октября 2017, 22:19:32 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04
- Печать
Страницы: [1] 2 Все Вверх