來源:http://blog.chinaunix.net/uid-22312037-id-3484071.html
今天,沉住氣,了結了redis開機啟動的遺憾。對我來說,這是個不小小的工作,如果要完全弄懂的話。困難如下:
1---redis啟動指令碼,及shell指令碼的編寫。
2---linux服務機制,那些進程會如何開機啟動關閉。
其中也的確遇到了一些困難。好在今天狀態不錯,都一一解決了。所以,流水記錄如下。
啟動shell指令碼如下,當然也是參考的他人的。
#! /bin/shserver_dir=/opt/redis-2.6.10server_name=redis-serverdemo=$server_dir/src/$server_nameconfiguration_file=$server_dir/redis.confpid_file=$server_dir/pid/redis.pidstart(){ #檢測server是否存在,且有執行許可權 if test -x $demo echo "Starting redis" then #執行啟動命令,返回執行結果 if $demo $configuration_file then echo "OK" else echo "Failed" fi else echo "Could not find redis server ($demo)" fi}stop(){ #檢測pid檔案是否存在,如果存在則表明正在運行 if test -e $pid_file then echo "Stopping redis" #pid檔案中只儲存了進程號,所以直接得到進程號殺死即可 if kill `cat $pid_file` then echo "OK" else echo "Failed" fi else echo "No server is running!" exit 0 fi} restart(){ stop start}#檢測輸入的命令case $1 in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Bad command" exit 1esacexit 0
遇到的問題:
1--shell case 的使用
2--shell test 命令的使用
3--shell 空格(賦值/判斷)
如果經過測試後指令碼通過,則可以進行下一項任務:設定指令碼開機啟動執行。