LINUX开机自启动redis服务

时间:2021-11-14 06:12:21


以下是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、nmap
nmap  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
  端口和服务的操作就到这儿吧。