2015-09-09 35 views
-1

我已经在文件的bash的初始化脚本在/etc/init.d/redis-snapshot初始化脚本没有运行系统重启/关机

#!/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 . 

由于某种原因,它不工作,我无能为力下一步尝试。

任何好点子?

+0

这是您的发行版的正确命令吗?是否更新了/ etc/rc#.d'目录中的正确链接?此时您的发行版是否使用init脚本?或者它转向了“新贵”还是“systemd”? –

+0

@EtanReisner我在Ubuntu 14上。我执行的命令确实说明了正确的链接已经在rc dirs中设置了 –

+0

你看*正确的链接吗? Ubuntu 14不是使用'upstart'而是'sysvinit'吗?那么你不应该使用适当的'upstart'相关命令而不是'update-rc.d'吗? (或者'update-rc.d'对'upstart'也是正确的?) –

回答

0

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

chkconfig --add redis-snapshot

0

如果您想具体了解您的脚本是否运行,您可以尝试跳过输出重定向到文件,所以你在启动过程中或检查开机后/var/log/boot.log看到它。

如果输出丢失,那么您的脚本不会被添加到/etc/rc#.d

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

bash /root/script.sh 
exit 0 
相关问题