当前位置: 首页 > 知识库问答 >
问题:

启用Systemd的服务不再在启动时启动

东方智敏
2023-03-14

我很久以前做了一些自定义systemd服务,都有相同的配置(当然ExecStart除外)

这种配置已经运行了很多年,从18.04版LTS开始,我已经启动并运行了ubuntu,但是现在看起来有些systemd服务根本没有启动,配置如下(myapp.service):

[Unit]
Description="myapp"
After=syslog.target network-online.target
Wants=network-online.target

[Service]
Restart=always
RestartSec=10
User=root
Group=root
WorkingDirectory=/opt/myapp
ExecStart=/usr/local/bin/myapp
KillMode=control-group

[Install]
WantedBy=multi-user.target

服务已启用:

$ sudo systemctl enable myapp
Created symlink /etc/systemd/system/multi-user.target.wants/myapp.service → /lib/systemd/system/myapp.service.

如果在重新启动后执行“systemctl status myapp”:

● myapp.service - "myapp"
   Loaded: loaded (/lib/systemd/system/myapp.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

如果我在重新启动后执行“Journal alctl-u myapp-f”:

Jan 13 12:10:06 myhost systemd[1]: Started myapp.
Jan 17 07:15:03 myhost systemd[1]: Stopping myapp...
Jan 17 07:15:09 myhost systemd[1]: Stopped myapp.

我的配置有什么问题?

如果我手动启动 /usr/local/bin/myapp脚本上没有错误,我也尝试过使用tmux运行它,现在它在bg中运行了3天,没有错误。但systemd只是在重新启动后不会启动它。

今天,我还尝试安装一个需要systemd配置的新服务,该包是zram配置,默认情况下它在引导时启用。但是在:apt安装zram config之后

$ sudo systemctl status zram-config
● zram-config.service - Initializes zram swaping
   Loaded: loaded (/lib/systemd/system/zram-config.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

但如果我现在这么做:

$ sudo systemctl start zram-config
$ sudo systemctl status zram-config
● zram-config.service - Initializes zram swaping
   Loaded: loaded (/lib/systemd/system/zram-config.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2020-01-27 12:25:55 CET; 1s ago
  Process: 5541 ExecStart=/usr/bin/init-zram-swapping (code=exited, status=0/SUCCESS)
 Main PID: 5541 (code=exited, status=0/SUCCESS)

Jan 27 12:25:55 myhost systemd[1]: Starting Initializes zram swaping...
Jan 27 12:25:55 myhost init-zram-swapping[5541]: Setting up swapspace version 1, size = 985,7 MiB (1033568256 bytes)
Jan 27 12:25:55 myhost init-zram-swapping[5541]: nessuna etichetta, UUID=4ac5c2cd-0c68-4f6d-a5c0-d8f91a509c71
Jan 27 12:25:55 myhost init-zram-swapping[5541]: Setting up swapspace version 1, size = 985,7 MiB (1033568256 bytes)
Jan 27 12:25:55 myhost init-zram-swapping[5541]: nessuna etichetta, UUID=83a4f201-d591-4222-89a6-5bc5aebedef4
Jan 27 12:25:55 myhost init-zram-swapping[5541]: Setting up swapspace version 1, size = 985,7 MiB (1033568256 bytes)
Jan 27 12:25:55 myhost init-zram-swapping[5541]: nessuna etichetta, UUID=1f6f742e-6fb8-4332-b226-bf6918f7ee28
Jan 27 12:25:55 myhost init-zram-swapping[5541]: Setting up swapspace version 1, size = 985,7 MiB (1033568256 bytes)
Jan 27 12:25:55 myhost init-zram-swapping[5541]: nessuna etichetta, UUID=a5509c55-46f5-4112-8fe1-68171f31409e
Jan 27 12:25:55 myhost systemd[1]: Started Initializes zram swaping.

我真的不明白我安装的Ubuntu上的systemd有什么问题,我重新安装整个操作系统更好吗?

谢啦

共有1个答案

苏乐
2023-03-14

检查journalctl的完整输出,以获取有关周期的消息,例如:

Job <your.service> deleted to break ordering cycle starting with <something else>

我也有类似的问题。这是由于排序周期,这很难调试和修复。

 类似资料:
  • 我有一个spring boot可执行罐,装在数字海洋水滴中。我可以使用现在我想让我作为一个服务运行。 我已经创建了文件/etc/systemd/system/myapp。用这些内容服务 然后使其在系统启动时启动 我正在尝试启动服务 但是我得到了这个错误 无法启动myapp.service:未知单位:myapp.service详情请参阅系统日志和'systemctl statusmyapp.serv

  • 问题内容: 从我在Stack Exchange和其他地方看到的所有内容中,我已经正确设置了所有内容,可以在启动Android OS时启动IntentService。不幸的是,它没有在启动时启动,并且我没有收到任何错误。也许专家可以帮忙… 表现: 用于启动的BroadcastReceiver: 更新:我尝试了下面的几乎所有建议,并;在处理程序中添加了日志记录,但从未记录过任何内容。因此,它甚至还没有

  • 问题内容: 当设备在android上启动时,我一直在尝试启动服务,但无法正常工作。我已经看了许多在线链接,但是这些代码都不起作用。我忘记了什么吗? 广播接收器 问题答案: 作为附加信息:BOOT_COMPLETE在挂载外部存储之前发送到应用程序。因此,如果将应用程序安装到外部存储,它将不会收到BOOT_COMPLETE广播消息。

  • 我有以下系统脚本: 运行命令:systemctl start/stop hub工作正常。我还使用systemctl启用集线器创建了符号链接。为什么我的服务在我重新启动整个笔记本电脑后没有启动?我遵循了docker指南,以便Docker在重新启动时启动,但由于某种原因我的容器没有启动。我的脚本中缺少一个字段吗? 我正在使用ExecStart,“/home/hub/hub.sh”脚本的命令是: 重新启

  • 我已将spring-boot应用程序部署到IIS/嵌入式tomcat,作为一个azure应用程序服务。当应用程序服务启动时,应用程序日志显示同一实例大约每10分钟发生一次重新启动(新的pid)。90分钟后,它将最终成功部署。我从嵌入的tomcat日志和org.springframework日志中看不到任何问题,但有时它可能在2分钟内开始。 我还可以在哪里查找启动错误,有没有办法增加应用服务启动时间

  • 我正试图通过以下命令从ADB启动服务- 我得到以下回应