我正在尝试检查这解决方案将帮助我实现关机后自动重启。
但是命令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 中的旧文件与此冲突。我一删除它,就能够启用该服务。
我找不到有关此行为的任何文档。