【发布时间】:2017-08-17 09:36:02
【问题描述】:
我想在使用 systemd 启动 httpd 服务之前运行自定义 bash 脚本。我正在使用 Centos 7。
有什么想法吗?
亲切的问候。
【问题讨论】:
-
创建将运行这些脚本的服务,并将此服务作为先决条件添加到 httpd
-
向我们展示您迄今为止所做的尝试,并解释哪些有效,哪些无效,以及您发现文档的哪些部分不清楚。
我想在使用 systemd 启动 httpd 服务之前运行自定义 bash 脚本。我正在使用 Centos 7。
有什么想法吗?
亲切的问候。
【问题讨论】:
假设你的httpd服务名为httpd.service,创建一个目录/etc/systemd/system/httpd.service.d;并在其中创建一个名为run-my-script-first.conf(或任何你喜欢的)的文件,其中包含以下内容:
[Service]
ExecStartPre=/path/to/your/script
【讨论】:
systemctl daemon-reload(或重新启动)来激活配置文件更改?如果您只是更改了文件并立即尝试重新启动服务,则说明新配置尚未激活。
systemctl status httpd,看看它是否显示了 ExecStartPre 命令在调用期间发生的情况。 (显然,只有在加载配置并启动服务后才会有有用的输出)。
ssh 守护进程执行此操作,因此我创建了一个名为ssh.service.d 的目录,其中包含.conf 文件,但我会尝试执行systemctl daemon-reload。
systemctl status ssh(顺便说一句,你确定它被称为ssh,而不是sshd,对于你的发行版吗?)在你完成daemon-reload之后显示ExecStartPre服务,然后是systemctl restart ssh?
systemctl show ssh | grep ExecStart 是了解活动配置的好地方。