我有一个基于 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
应该是系统再次开始启动之后的时间戳。