首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

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

  •  
  •   Livid · 56 天前 · 2032 次点击
    这是一个创建于 56 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 回复  |  直到 2019-02-25 17:01:39 +08:00
        1
    annoy1309   56 天前   ♥ 1
    启动另一个来完成这个事件?
        2
    Kilerd   56 天前 via iPhone   ♥ 1
    写另外一个服务来做这个事? 原来的服务就依赖这个新的服务?
        3
    LokiSharp   56 天前   ♥ 1
    ExecStartPre 里面跑个脚本?
        4
    fangpeishi   56 天前   ♥ 1
    ExecStartPre ?
        5
    avastms   56 天前   ♥ 2
    启动脚本啊。。
    systemd 启动这个脚本,脚本负责先 mkdir -p 然后再开主进程,主进程自己建个 pid 文件,systemd 去指定 pid 文件里追踪 pid
    他们就是这套逻辑。。
        6
    LokiSharp   56 天前   ♥ 1
    [Service]
    ExecStartPre=[check file]
    ExecStart=Balabala
        7
    linhua   56 天前   ♥ 1
    写个 wrapper
        8
    lzvezr   56 天前 via iPhone   ♥ 1
    不是可以 ExecStartPre=/bin/mkdir 吗?
    权限不够就给个 root,PermissionsStartOnly=true
        9
    Livid   V2EX Moderator   56 天前
    谢谢楼上的各位。
        10
    fundon   56 天前
        11
    codehz   56 天前 via Android   ♥ 3
    正确方法:RuntimeDirectory=, StateDirectory=, CacheDirectory=, LogsDirectory=, ConfigurationDirectory=选项
        12
    flynaj   56 天前 via Android
    看一下 openssh 的写法
        13
    Keyes   56 天前
    ExecStartPre 跑一个 bootstrap 脚本
        14
    dorothyREN   56 天前   ♥ 1
    @Livid #9 ExecStartPre=/bin/mkdir /test -p

    直接加个-p 参数吧,有的话就忽略,没有的话会直接创建的
        15
    julyclyde   56 天前   ♥ 1
    @codehz 说的是对的
    现在的运维行业流行的是状态描述法,而不是动作描述法
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1179 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 18:13 · PVG 02:13 · LAX 11:13 · JFK 14:13
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1