如果有可能让一个 systemd 控制的进程在启动时如果发现指定的几个目录不存在,就创建然后再启动服务?

2019-02-25 12:56:56 +08:00
 Livid
3634 次点击
所在节点    Linux
15 条回复
annoy1309
2019-02-25 13:00:18 +08:00
启动另一个来完成这个事件?
Kilerd
2019-02-25 13:00:59 +08:00
写另外一个服务来做这个事? 原来的服务就依赖这个新的服务?
LokiSharp
2019-02-25 13:03:00 +08:00
ExecStartPre 里面跑个脚本?
fangpeishi
2019-02-25 13:03:27 +08:00
ExecStartPre ?
EPr2hh6LADQWqRVH
2019-02-25 13:04:33 +08:00
启动脚本啊。。
systemd 启动这个脚本,脚本负责先 mkdir -p 然后再开主进程,主进程自己建个 pid 文件,systemd 去指定 pid 文件里追踪 pid
他们就是这套逻辑。。
LokiSharp
2019-02-25 13:06:06 +08:00
[Service]
ExecStartPre=[check file]
ExecStart=Balabala
linhua
2019-02-25 13:07:20 +08:00
写个 wrapper
lzvezr
2019-02-25 13:09:51 +08:00
不是可以 ExecStartPre=/bin/mkdir 吗?
权限不够就给个 root,PermissionsStartOnly=true
Livid
2019-02-25 13:12:58 +08:00
谢谢楼上的各位。
fundon
2019-02-25 13:14:55 +08:00
codehz
2019-02-25 13:44:07 +08:00
正确方法:RuntimeDirectory=, StateDirectory=, CacheDirectory=, LogsDirectory=, ConfigurationDirectory=选项
flynaj
2019-02-25 14:14:06 +08:00
看一下 openssh 的写法
Keyes
2019-02-25 14:22:09 +08:00
ExecStartPre 跑一个 bootstrap 脚本
dorothyREN
2019-02-25 15:06:10 +08:00
@Livid #9 ExecStartPre=/bin/mkdir /test -p

直接加个-p 参数吧,有的话就忽略,没有的话会直接创建的
julyclyde
2019-02-25 17:01:39 +08:00
@codehz 说的是对的
现在的运维行业流行的是状态描述法,而不是动作描述法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/538431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX