13

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.

Volz
  • 253

3 Answers3

25

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
1

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

mboza2
  • 11
1

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.