标签: init-script

Systemd 错误:可执行路径不是绝对的

我有以下 systemd 代码。

[Unit]
Description=start RCC logger server process
Requires=rcc-drbd.service rcc_check_locked_scr.service s96rcc.service
After=rcc-drbd.service rcc_check_locked_scr.service s96rcc.service

[Service]
ExecStart= exec /var/RCC/RCClogger.sh
Restart=no

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

在我尝试运行它的地方,出现以下错误。

Mar 23 04:45:52 localhost.localdomain systemd[1]: 
[/etc/systemd/system/rcc_logger.service:7] Executable path is not absolute, 
ignoring: exec /v...ogger.sh
Mar 23 04:45:52 localhost.localdomain systemd[1]: rcc_logger.service lacks 
both ExecStart= and ExecStop= setting. Refusing.
Run Code Online (Sandbox Code Playgroud)

我知道这是因为没有 exec 命令的绝对路径,但是由于 exec 作为二进制文件不可用,我不能使用绝对路径。如何让这个 ExecStart 运行?

linux upstart systemd init-script redhat-enterprise-linux

12
推荐指数
2
解决办法
6万
查看次数

等待 Virtualbox VM 关闭的 Bash 脚本?

Virtualbox 能够向正在运行的虚拟机发出命令:

vboxmanage controlvm NameOfRunningVM acpipowerbutton
Run Code Online (Sandbox Code Playgroud)

但是,此命令会立即返回,这会导致我的情况无法正常关闭。

情况:我计划在 /etc/init.d 脚本中使用它。这将允许正常关闭所有正在运行的 VM。目前,当我发出vboxmanage controlvm NameOfRunningVM acpipowerbutton命令时,关闭会被切断,因为该命令不会等待 VM 关闭。

我需要一个 Bash 脚本,它将 Virtualbox 机器的名称和超时(以秒为单位)作为输入,然后等待 VM 返回到“关机”状态或超时发生?

我不确定这样做的最佳方法是什么。


我正在考虑使用以下命令检查 VM 的状态:

[user@machine ~]$ vboxmanage list runningvms
"VirtualMachineName" {65c93f1f-4508-4119-b07d-ce9e89b23b8e}
Run Code Online (Sandbox Code Playgroud)

bash 脚本可能会轮询正在运行的虚拟机列表。一旦机器名称停止列出,VM 将被视为已完成。

virtualbox bash virtual-machine init-script sysvinit

6
推荐指数
1
解决办法
9224
查看次数