仅在出现错误时自动启动进程并重生

仅在出现错误时自动启动进程并重生

我试图在另一个 process_B 结束后自动启动 process_A (启动时)(这会在系统中进行一些更新并需要关闭 process_A),然后如果 process_A 崩溃或因错误完成,请重新启动。

我正在尝试使用这样的 bash 脚本:

#!/bin/bash

# Launch updater on start
process_B

# Launch process_A
until process_A
do
    # Restart in case of error/crash
    echo "process_A stopped with exit code $?.  Respawning.." >&2;
    sleep 2;
done

# Shutdown system
shutdown -hP now

我遇到的问题是如何在启动时正确启动此脚本,因为如果我使用像这样的自动启动

$HOME/.conf/autostart/script_launcher.desktop

然后 process_A 失败,因为我猜还有一些所需的服务尚未启动。如果我手动启动此脚本,它运行时不会出现错误。

我正在考虑 init.d 服务在启动时启动 process_A 并自动重新生成它,但我需要在启动之前且仅在启动时执行 process_B 。

我正在使用 Debian Wheezy。

相关内容