centos7自启动mysql,redis等

简要步骤

  • 按格式创建启动文件,并移到 /etc/init.d/ 路径下。有些软件安装目录里有提供这个文件,如mysql,在安装目录/support-files/mysql.server ,cp 一份到这个目录,并重命名为 mysqld
#到mysql安装目录
cp ./support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld

根据需要修改其中的一些参数。主要修改

#需要修改的
basedir=安装目录
datadir=data目录
#根据自己需要修改的
conf=my.cnf位置
mysqld_pid_file_path="${datadir}localhost.localdomain.pid"
# start的启动参数一点修改等
$bindir/mysqld_safe --defaults-file="$conf" --pid-file="$mysqld_pid_file_path" --user=root $other_args >/dev/null &
  • 赋权限,运行权限 750或777权限。
chmod 777 /etc/init.d/mysqld
  • 加入服务并打开开机启动
chkconfig mysqld on
chkconfig --add /etc/init.d/mysqld
  • 之后可以测试一下是否能够通过服务进行启动。
service mysqld start

如果可以通过服务名进行启动,一般开机就可以自启动了。

其他一些常用软件自启动文件。

参考:

  • redis: 文件在安装目录/utils/redis_init_script , cp 一份到/etc/init.d下修改即可。
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379
EXEC=/home/usr/local/redis/src/redis-server
CLIEXEC=/home/usr/local/redis/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
#CONF="/etc/redis/${REDISPORT}.conf"
CONF="/home/usr/local/redis/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
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

  • mongodb
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
	echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
	echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

start(){
/home/usr/local/mongodb/bin/mongod --config /home/usr/local/mongodb/mongo.cfg
}

stop(){
/home/usr/local/mongodb/bin/mongod --config  /home/usr/local/mongodb/mongo.cfg --shutdown
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)	
		stop
		start
		;;
	*)
	echo $"Usage: $0 {start|stop|restart}"
	exit 1
esac
  • nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/home/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/home/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    #    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    #killproc $prog -q
    #retval=$?
    #echo
    #[ $retval -eq 0 ] && rm -f $lockfile
    #return $retval
    $nginx -s quit
    pkill nginx
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

  • zookeeper
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/home/usr/local/jdk1.8
case $1 in
        start)  /home/usr/local/zookeeper/bin/zkServer.sh start;;
        stop) /home/usr/local/zookeeper/bin/zkServer.sh stop;;
        status) /home/usr/local/zookeeper/bin/zkServer.sh status;;
        restart) /home/usr/local/zookeeper/bin/zkServer.sh restart;;
        *) echo "require start|stop|status|restart" ;;
esac
  • tomcat
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/home/usr/local/jdk1.8
####export JRE_HOME=/home/usr/local/jdk1.8/jre
export CATALINA_HOME=/home/usr/local/t9ecm/tomcat7x
export CATALINA_BASE=/home/usr/local/t9ecm/tomcat7x
start()
{
        if [ -f $CATALINA_HOME/bin/startup.sh ];
          then
            echo $"Starting tomcat7x"
                $CATALINA_HOME/bin/startup.sh
            RETVAL=$?
            echo " OK"
            return $RETVAL
        fi
}
stop()
{
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];
          then
            echo $"Stopping tomcat7x"
                $CATALINA_HOME/bin/shutdown.sh
            RETVAL=$?
            sleep 1
            ps -fu root | grep tomcat7x | grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
            echo " OK"
            # [ $RETVAL -eq 0 ] && rm -f /var/lock/...
            return $RETVAL
        fi
}
 
case "$1" in
 start)
        start
        ;;
 stop)
        stop
        ;;
 
 restart)
         echo $"Restaring tomcat7x"
         $0 stop
         sleep 1
         $0 start
         ;;
 *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
exit $RETVAL

一般一个机器可能不止一个tomcat,用这种方式来启动可能不太方便,那么,可以写到 /etc/rc.d/rc.local ,一起启动,如下

export JAVA_HOME=/home/usr/local/jdk1.8
/home/usr/local/t9ecm/tomcat7x/bin/startup.sh start & \
/home/usr/local/t9ecm/tomcat7x-7088/bin/startup.sh start & \
/home/usr/local/t9ecm/tomcat7x-6088/bin/startup.sh start & \

赋权限

chmod 750  /etc/rc.d/rc.local

参考:
https://blog.csdn.net/weixin_37696997/article/details/78545330
https://imshusheng.com/linux/225.html
https://blog.csdn.net/u012453843/article/details/70162796
https://www.zifangsky.cn/654.html

猜你喜欢

转载自blog.csdn.net/dansam/article/details/86672880