我正在尝试设置一个脚本,以 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.服务