Livid
396.81D
543.26D
V2EX  ›  Linux

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

By Livid at 2019 年 2 月 25 日 · 4386 次点击
15 条回复  •  2019-02-25 17:01:39 +08:00
annoy1309
   1
annoy1309  
   2019 年 2 月 25 日   ❤️ 1
启动另一个来完成这个事件?
Kilerd
   2
Kilerd  
   2019 年 2 月 25 日 via iPhone   ❤️ 1
写另外一个服务来做这个事? 原来的服务就依赖这个新的服务?
LokiSharp
   3
LokiSharp  
   2019 年 2 月 25 日   ❤️ 1
ExecStartPre 里面跑个脚本?
xzl380
   4
xzl380  
   2019 年 2 月 25 日   ❤️ 1
ExecStartPre ?
EPr2hh6LADQWqRVH
   5
EPr2hh6LADQWqRVH  
   2019 年 2 月 25 日   ❤️ 2
启动脚本啊。。
systemd 启动这个脚本,脚本负责先 mkdir -p 然后再开主进程,主进程自己建个 pid 文件,systemd 去指定 pid 文件里追踪 pid
他们就是这套逻辑。。
LokiSharp
   6
LokiSharp  
   2019 年 2 月 25 日   ❤️ 1
[Service]
ExecStartPre=[check file]
ExecStart=Balabala
linhua
   7
linhua  
   2019 年 2 月 25 日   ❤️ 1
写个 wrapper
lzvezr
   8
lzvezr  
   2019 年 2 月 25 日 via iPhone   ❤️ 1
不是可以 ExecStartPre=/bin/mkdir 吗?
权限不够就给个 root,PermissionsStartOnly=true
Livid
   9
Livid  
MOD
OP
PRO
   2019 年 2 月 25 日
谢谢楼上的各位。
fundon
   10
fundon  
   2019 年 2 月 25 日
codehz
   11
codehz  
   2019 年 2 月 25 日 via Android   ❤️ 3
正确方法:RuntimeDirectory=, StateDirectory=, CacheDirectory=, LogsDirectory=, ConfigurationDirectory=选项
flynaj
   12
flynaj  
   2019 年 2 月 25 日 via Android
看一下 openssh 的写法
Keyes
   13
Keyes  
   2019 年 2 月 25 日
ExecStartPre 跑一个 bootstrap 脚本
dorothyREN
   14
dorothyREN  
   2019 年 2 月 25 日   ❤️ 1
@Livid #9 ExecStartPre=/bin/mkdir /test -p

直接加个-p 参数吧,有的话就忽略,没有的话会直接创建的
julyclyde
   15
julyclyde  
   2019 年 2 月 25 日   ❤️ 1
@codehz 说的是对的
现在的运维行业流行的是状态描述法,而不是动作描述法
Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
© 2026 V2EX · 57ms · 3.9.8.5