我有一个使用 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
实现这样的目标的最干净的方法是什么?