为什么我的 Linux 服务同时启动和停止?

为什么我的 Linux 服务同时启动和停止?

我有一个基于 CentOS 的 Amazon Linux AMI,我试图设置自定义服务,其中将在启动时调用一个小型 bash 脚本(在特定位置创建虚拟文件)。

我按照这个教程操作https://unix.stackexchange.com/a/20361myscript并创建一个如下所示的自定义服务脚本,并/etc/init.d folder以 777 权限和root所有者身份将其复制到其中;

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
      echo -n "Starting myscript... "
      su user
      touch /data/startfile
      return 0
}

stop() {
      echo -n "Stopping myscript... "
      su user
      touch /data/stopfile
      return 0
}

case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0

重新启动计算机后,当我检查/data/目录时,我可以看到两个文件startfile以及stopfile.如果服务自动启动,startfile这是可以预料的,但我想知道stopfile.有人可以解释为什么会发生这种情况吗?

谢谢

答案1

当您要求系统重新启动时,您的 initscript 将会被调用:这可能是stopfile创建的时候。

它们startfile将在系统启动期间按预期创建。

检查文件上的时间戳应该可以让您确认这一点:stopfile时间戳应该是在您要求重新启动的时间和系统实际重新启动的时间之间,并且startfile应该是系统再次开始启动之后的时间戳。

相关内容