系统重新启动/关闭时,Init脚本未运行

时间:2015-09-09 10:57:27

标签: linux bash shell redis init

我在/etc/init.d/redis-snapshot

的文件中创建了一个bash init脚本
#!/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 .

由于某种原因它不起作用,我无法在接下来尝试什么。

有什么好主意吗?

2 个答案:

答案 0 :(得分:0)

您的基础发行版和发行版是什么? 试试

chkconfig --add redis-snapshot

答案 1 :(得分:0)

如果您希望明确了解脚本是否已运行,可以尝试跳过输出重定向到文件,这样您就可以在启动过程中看到它或在启动后检查/var/log/boot.log

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

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

bash /root/script.sh
exit 0