如果你不想使用额外的脚本,可以考虑直接在 ExecStart
中使用 shell 命令来执行 /boot/deregister cfgsvc
,然后再启动你的服务。可以通过将命令放入一个单行中来实现。这是一个可能的实现:
[Unit]
Description=5GC Configuration Service
After=network.target
[Service]
Type=simple
ExecStart=/bin/sh -c '/boot/deregister cfgsvc && /usr/local/sbin/cfgsvc/cfgsvc'
Restart=no
RestartSec=15s
LimitCORE=infinity
Environment="GOTRACEBACK=crash"
KillMode=process
[Install]
WantedBy=multi-user.target
在这个配置中,/bin/sh -c
用于执行包含两个命令的字符串。第一个命令是 /boot/deregister cfgsvc
,如果该命令成功(返回 0),第二个命令才会执行,即启动 cfgsvc
服务。
完成这些修改后,记得重新加载 systemd
配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart your_service_name.service # 将 your_service_name 替换为你的服务名称
这样就不需要创建额外的脚本了。
内容由零声教学AI助手提供,问题来源于学员提问