sudo systemctl daemon-reload 无法通过 ssh 命令工作

问题描述 投票:0回答:1

修改 systemctl myService.service 文件后,当通过 bash sh 脚本通过 SSH 远程执行命令“sudo systemctl daemon-reload”时:

  • 远程服务器中的myService.service文件已正确修改
  • 但是守护程序重新加载没有任何反应,更改不会重新加载到远程服务器系统中。

bash sh 脚本部分示例:

ssh -i "/myssh.key" myuser@host "sudo bash 'echo -e \"ExecStart=/mydir/run-service.sh\" >> /etc/systemd/system/myService.service'"
ssh -i "/myssh.key" myuser@host "sudo systemctl daemon-reload"

服务文件在远程服务器上已正确修改,但似乎守护程序重新加载命令对远程服务器没有影响。

但是,执行上述脚本后,通过 ssh 终端会话手动调用“sudo systemctl daemon-reload”,更改将正确重新加载。

将两个命令用 ; 分隔开在同一个 ssh 调用中不能解决问题。

服务器:Ubuntu 22.04.4 远程客户端(运行sh脚本):Windows WSL2 容器:没有

bash ubuntu ssh systemd systemctl
1个回答
1
投票

已解决

根据 Nick ODell 的建议,在命令之间添加 10 秒的睡眠时间解决了问题:

  • ssh -i "/myssh.key" myuser@host "sudo bash 'echo -e \"ExecStart=/mydir/run-service.sh\" >> /etc/systemd/system/myService.service'"
  • 睡眠10秒
  • ssh -i "/myssh.key" myuser@host "sudo systemctl daemon-reload"
© www.soinside.com 2019 - 2024. All rights reserved.