28

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.
CharlesB
  • 545
  • 1
  • 4
  • 20

4 Answers4

26

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

nick fox
  • 641
  • 7
  • 8
14

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.

CharlesB
  • 545
  • 1
  • 4
  • 20
9

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
Cory
  • 391
  • 2
  • 5
  • 10
1

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