【问题标题】:Linux process restarterLinux进程重启器
【发布时间】:2014-05-12 13:06:00
【问题描述】:

我想要一个执行以下操作的脚本:

if process_name not running
    start process from path /home/data/process_name
    write "date: process start" to /home/data/log.txt

我从来没有写过bash 脚本,也不知道该怎么办。

【问题讨论】:

    标签: linux bash debian


    【解决方案1】:

    在 Debian 和 Ubuntu 上,您可以使用 start-stop-daemon。它有各种选项来帮助识别正确的进程,这样您就不会最终启动它两次或杀死错误的进程。手册页中的一个示例:

    Start  the  food daemon, unless one is already running (a process named
    food, running as user food, with pid in food.pid):
    
        start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon
    

    此命令确保进程属于正确的用户,具有正确的名称,并且具有与/var/run/food.pid 中的匹配的进程 ID。当然,您不必全部使用它们。

    【讨论】:

      【解决方案2】:

      试试这个:

      if ! pgrep process_name; then
        /home/data/process_name &
        echo "$(date): Process start" >> /home/data/log.txt
      fi
      

      如果你想杀死进程然后启动它,试试这个:

      if ! pgrep process_name; then
        /home/data/process_name &
        echo "$(date): Process start" >> /home/data/log.txt
      else
        killall process_name
        /home/data/process_name &
        echo "$(date): Process start" >> /home/data/log.txt
      fi
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        • 2012-03-07
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 2011-08-11
        • 2014-01-05
        相关资源
        最近更新 更多