Default-Start 不包含运行级别,正在中止

Default-Start 不包含运行级别,正在中止

我正在尝试检查解决方案将帮助我实现关机后自动重启。

但是命令sudo systemctl enable haltusbpower.service后面跟着错误:

使用 /lib/systemd/systemd-sysv-install 将 haltusbpower.service 的状态与 SysV 服务脚本同步。正在执行:/lib/systemd/systemd-sysv-install enable haltusbpower update-rc.d:错误:haltusbpower Default-Start 不包含运行级别,正在中止。

我的/usr/lib/systemd/system/haltusbpower.service文件:

[Unit]
Description=haltusbpower
Before=shutdown.target
DefaultDependencies=no

[Service]
ExecStart=/usr/local/bin/haltusbpower.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target

我的/usr/local/bin/haltusbpower.sh脚本:

#!/bin/bash
for i in /sys/bus/usb/devices/*/power/control;
        do echo on > $i
done

它有执行选项:

karol@karol:~$ ls -l /usr/local/bin/haltusbpower.sh
-rwxr-xr-x 1 root root 88 kwi 27 13:03 /usr/local/bin/haltusbpow

为什么启用 haltusbpower 不起作用?后面的错误是什么意思?我不明白在哪里查找错误。

答案1

在脚本的顶部/usr/local/bin/haltusbpower.sh添加如下内容:

#!/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

答案2

我收到了相同的错误消息,但其中包含有关的消息missing LSB tags and overrides

/usr/local/bin/./MyService.sh start我查看了 htop,发现有多个进程跟踪了我使用和测试服务时的日志/usr/local/bin/./MyService.sh stop。一旦我终止这些进程,它就成功了。

启动和停止测试命令取自http://www.jcgonzalez.com/ubuntu-16-java-service-wrapper-example

答案3

我只是想重新发布原始问题附带的评论作为答案,因为它解决了我的问题。

我一开始使用一个 shell 脚本/etc/init.d/kafka,并使用启动和停止标志。然后我编写了一个 SystemD 单元文件并将其放在 中/etc/systemd/system/kafka.service。许多 systemctl 命令(例如systemctl cat kafka和)systemctl status kafka显示单元文件被检测为后者kafka.service,但不知何故 /etc/init.d 中的旧文件与此冲突。我一删除它,就能够启用该服务。

我找不到有关此行为的任何文档。

相关内容