天天看點

linux redis服務自啟動,LINUX開機自啟動redis服務

以下是linux打開端口指令的使用方法。

nc -lp 23 &(打開23端口,即telnet)

netstat -an | grep 23 (檢視是否打開23端口)

做redis時想開機自啟動6379端口:(本質是要自啟動端口所對應的服務)

1. 修改/etc/redis.conf,打開背景運作選項:

# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize yes

2.編寫腳本,vim /etc/init.d/redis:(弄成   SHELL腳本)

#!/bin/sh #一定要這句

# chkconfig: 2345 10 90

# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379 #實際環境而定

EXEC=/opt/redis-2.4.6/src/redis-server #實際環境而定

REDIS_CLI=/opt/redis-2.4.6/src/redis-cli #實際環境而定

PIDFILE=/var/run/redis.pid

CONF="/opt/redis-2.4.6/redis.conf" #實際環境而定

case "$1" in

start)

if [ -f $PIDFILE ]

then

echo "$PIDFILE exists, process is already running or crashed."

else

echo "Starting Redis server..."

$EXEC $CONF

fi

if [ "$?"="0" ]

then

echo "Redis is running..."

fi

;;

stop)

if [ ! -f $PIDFILE ]

then

echo "$PIDFILE exists, process is not running."

else

PID=$(cat $PIDFILE)

echo "Stopping..."

$REDIS_CLI -p $REDISPORT SHUTDOWN

while [ -x $PIDFILE ]

do

echo "Waiting for Redis to shutdown..."

sleep 1

done

echo "Redis stopped"

fi

;;

restart|force-reload)

${0} stop

${0} start

;;

*)

echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2

exit 1

esac

3.執行權限:

chmod +x /etc/init.d/redis

開機自啟動:

# 嘗試啟動或停止redis

service redis start

service redis stop

# 開啟服務自啟動

chkconfig redis on

理論知識:(摘抄)

一、端口和服務的關系端口号與相應服務的對應關系存放在/etc/services檔案中,這個檔案中可以找到大部分端口。使用netstat指令顯示的服務名稱也是從這個檔案中找的。有人說将這個檔案中的相應端口号注釋掉,就可以禁用該端口。我試了卻不起作用,這種方法應該是沒有用的,是誤傳!将相應端口号注釋掉,唯一的作用就是使用netsat指令時,将不顯示服務名(比如ftp)而是顯示端口号(比如21)。原理也很簡單:netstat無法在/etc/services檔案中找到端口号對應的服務名,自然就無法顯示了。是以/etc/services檔案隻是起到端口号與相應服務的映射關系,與端口的啟動和關閉沒有關系!二、檢視本機開放的端口1、netstat  檢視端口和連接配接netstat  列出目前已經連接配接的服務名netstat -a  列出目前已經連接配接的和正在監聽的服務名netstat -an  列出目前已經連接配接的和正在監聽的端口号(與上面的指令功能一樣,隻是不解釋端口号對應的服務名)netstat -ap  在上面指令的基礎上列出連接配接的PID(程序号),用這個PID,可以使用KILL 來殺死連接配接    例如:某個連接配接的PID=111,想踢出去就使用 KILL -9 111。ok!netstat -rn  輸出路由表2、nmapnmap  127.0.0.1  檢視本機開放的端口,會掃描所有端口nmap  -p 1024  65535? 127.0.0.1  掃描指定端口範圍nmap -PT 192.168.1.1-111? 掃描一組範圍的電腦三、關閉和開啟端口(服務)關閉端口的方法:1、因為每個端口都有對應的服務,是以要關閉端口隻要關閉相應的服務就可以了。2、用IPTABLE對端口進行限制,這樣也能使端口不被通路,但端口本身并沒有關閉。在這兒隻介紹關閉服務的方法,IPTABLE的應用以後再讨論。linux中開機自動啟動的服務一般都存放在兩個地方:/etc/init.d/檔案夾下的服務:這個檔案夾下的服務都可以通過運作相應的SCRIPT來啟動或關閉。例如:啟動sendmail服務  ./sendmail start (打開了TCP 25端口)關閉sendmail服務  ./sendmail stop (關閉TCP 25 端口)  檢視sendmail服務目前狀态  ./sendmail? status (檢視服務是否運作)/etc/xinetd.d/檔案夾下的服務:這個檔案夾下的服務需要通過更改服務的配置檔案,并重新啟動xinetd才可以。例如:要啟動其中的auth服務,打開/etc/xinetd.d/auth配置檔案,更改“disable=no”,儲存退出。運作/etc/rc.d/init.d/xinetd restart 要停止其中的auth服務,打開/etc/xinetd.d/auth配置檔案,更改“disable=yes”,儲存退出。運作/etc/rc.d/init.d/xinetd restart 四、控制開機自動啟動的服務上面說的控制服務開關方法是在啟動linux之後進行操作的,如果我想在linux啟動時控制哪些服務啟動、哪些服務關閉怎麼做控制服務自動啟動的方法有3個:1、更改/etc/rc.d下的對應檔案夾:  如果你登陸的預設界面是字元界面,那麼修改rc.3檔案夾,如果登陸界面預設是圖形界面,那麼修改rc.5。  在檔案夾中,每個服務的名字前都帶有“K”或“S”,S就代表這個服務開機自動運作了,把它删了或字首改為“K”下次就不會啟動了。2、使用ntsysv指令:  輸入ntsysv指令,将會出現一個服務清單,需要啟動的打“*”,簡單。3、使用chkconfig指令:  讓某個服務不自動啟動:例如httpd:chkconfig --level 35  httpd? off  ;35指的是運作級别讓某個服務自動啟動:例如httpd:chkconfig --level 35  httpd? on ;  檢視所有服務的啟動狀态:chkconfig --list   檢視某個服務的啟動狀态:chkconfig --list |grep httpd  端口和服務的操作就到這兒吧。