systemd 服务 dropin,ExecStartPre 以 root 用户身份运行

systemd 服务 dropin,ExecStartPre 以 root 用户身份运行

我有一个使用 systemd 运行的 Web 服务,该服务由其自己的用户运行,我想执行一些 ExecStartPre 命令,但以 root 用户身份运行。更详细地说:

即 /lib/systemd/system/webservice.service

[Unit]
Wants=network-online.target
After=network-online.target

[Service]
EnvironmentFile=/etc/default/web
Group=webuser
Type=simple
Restart=on-failure
WorkingDirectory=/usr/share/web
RuntimeDirectory=web
RuntimeDirectoryMode=0750
ExecStart=/usr/sbin/web --config=/etc/web/config.ini                               

[Install]
WantedBy=multi-user.target

我想要一个嵌入式服务,它从 Web 资源中获取 config.ini 文件

即 /etc/systemd/system/web.service.d/local.conf

[Service]
PermissionsStartOnly=true
RestartSec=5
EnvironmentFile=/etc/environment
ExecStartPre=+/usr/bin/curl http://some.url --output /etc/web/config.ini 
ExecStartPre=+chown web:web /etc/web/config.ini  

实现这样的目标的最干净的方法是什么?

相关内容