如何在系统重启后加载所有用户后运行 Systemd 服务

如何在系统重启后加载所有用户后运行 Systemd 服务

我正在尝试设置一个脚本,以 systemd 服务的身份运行,而不是以 root 用户身份运行。我的 .service 如下所示:

调度脚本.服务

[单元]

描述=调度脚本服务

需要 = rsyslog.service network.target

之后 = rsyslog.service network.target

[服务]

类型=简单

用户=svc.schd

ExecStart=/bin/sh /u01/apps/schedulescript.sh

[安装]

WantedBy=多用户.目标


当以“systemctl start schedulescript.service”运行时,它运行正常,但是重新启动时它会失败并显示以下状态


**8 月 17 日 13:11:07 dfw-vd-gwalt3.dev.svbank.com systemd[1]: 已启动 Schedulescript 脚本服务。

8 月 17 日 13:11:07 dfw-vd-gwalt3.dev.svbank.com systemd[1]: schedulescript.service: 主进程已退出,代码=exited,状态=217/USER

8 月 17 日 13:11:07 dfw-vd-gwalt3.dev.svbank.com systemd[1]: 单元 schedulescript.service 进入失败状态。

8 月 17 日 13:11:07 dfw-vd-gwalt3.dev.svbank.com systemd[1]: schedulescript.service 失败。


我相信发生这种情况是因为在重新启动时尝试执行时无法找到 svc.schd 用户,因为它尚未正确启动。

当我收到“systemd-analyze”的正确响应并尝试运行该服务时,它运行正常。

是否有人可以告诉必须在“After”块中设置什么服务,以便我的服务可以等待该特定用户在重启后可用?

答案1

已修复。必须为与 AD 配合使用的 vasd.service 设置依赖项。在块之后添加它,我的服务现在在重启时可以正常工作。

之后 = rsyslog.service network.targetvasd.服务

相关内容