系统重启/关机时Init脚本未运行



我在/etc/init.d/redis-snapshot的文件中做了一个bash初始化脚本:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          redis-snapshot
# Required-Start:    $local_fs $syslog Stime redis-server
# Required-Stop:     $local_fs $syslog $time redis-server
# Default-Start:     0 6
# Default-Stop:      2 3 4 5
# Short-Description: Backup redis data on system exit
# Description:       redis-snapshot is a simple bash script to dump redis data
#                    to disk whenever the system shuts down or reboots.
### END INIT INFO
# path to script log file
ACTIVITYLOG='/home/noman/Desktop/redis-snapshot.log'
# create/touch log file
touch $ACTIVITYLOG
# invoke the save command on redis-cli
# this will dump all in-memory data to disk
OUTPUT="$(redis-cli SAVE)"
echo -e "$(date +'%Y-%m-%d %H:%M:%S %Z')tSnapshoting Redis Data To Disk" >> $ACTIVITYLOG
echo -e "$(date +'%Y-%m-%d %H:%M:%S %Z')tRedis says $OUTPUT" >> $ACTIVITYLOG
# end - nothing to do

我使用以下命令使其在系统重启和关机时运行:

sudo update-rc.d redis-snapshot start 99 0 6 .

由于某种原因它不起作用,我不知道下一步该怎么做。

有什么好主意吗?

你的底层发行版是什么?试着

chkconfig --add redis-snapshot

如果您希望明确地找出您的脚本是否运行,您可以尝试跳过输出重定向到文件,因此您将在启动期间看到它或在启动后检查/var/log/boot.log

如果缺少输出,则您的脚本没有添加到/etc/rc#.d

启动时运行脚本的另一种方法(我更喜欢)是通过/etc/rc.local。例如:

bash /root/script.sh
exit 0

最新更新