Linux_CentOS7自定义开机自启动

来源:互联网 发布:网络兼职诈骗怎么判刑 编辑:程序博客网 时间:2024/06/06 18:47

1、nginx

vim /etc/init.d/nginx
#! /bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="nginx"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/$NAME.confPIDFILE=/usr/local/nginx/logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME set -e[ -x "$DAEMON" ] || exit 0do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running"}do_stop() { kill -INT `cat $PIDFILE` || echo -n "nginx not running"}do_reload() { kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"}case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;;esacexit 0
vim /lib/systemd/system/nginx.service
[Unit]  Description=nginx  After=network.target  [Service]  Type=forking  ExecStart=/etc/init.d/nginx start  ExecReload=/etc/init.d/nginx restart  ExecStop=/etc/init.d/nginx stop  PrivateTmp=true  [Install]  WantedBy=multi-user.target  

2、mysql

vim /lib/systemd/system/mysql.service
[Unit]  Description=mysql  After=network.target  [Service]  Type=forking  ExecStart=/usr/local/mysql/support-files/mysql.server start  ExecReload=/usr/local/mysql/support-files/mysql.server restart  ExecStop=/usr/local/mysql/support-files/mysql.server  stop  PrivateTmp=true  [Install]  WantedBy=multi-user.target  

3、php-fpm

vim /etc/init.d/php-fpm
#!/bin/sh  # DateTime: 2016-09-20# Source function library.  . /etc/rc.d/init.d/functions  # Source networking configuration.  . /etc/sysconfig/network  # Check that networking is up.  [ "$NETWORKING" = "no" ] && exit 0  phpfpm="/usr/local/php/sbin/php-fpm"  prog=$(basename ${phpfpm})  lockfile=/var/lock/subsys/phpfpmstart() {      [ -x ${phpfpm} ] || exit 5      echo -n $"Starting $prog: "      daemon ${phpfpm}    retval=$?      echo      [ $retval -eq 0 ] && touch $lockfile      return $retval  }  stop() {      echo -n $"Stopping $prog: "      killproc $prog -QUIT      retval=$?      echo      [ $retval -eq 0 ] && rm -f $lockfile      return $retval  }  restart() {      configtest || return $?      stop      start  }  reload() {      configtest || return $?      echo -n $"Reloading $prog: "      killproc ${phpfpm} -HUP      RETVAL=$?      echo  }  force_reload() {      restart  }  configtest() {    ${phpfpm} -t}  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          ;;      status)          rh_status          ;;      *)          echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"          exit 2  esac
vim /lib/systemd/system/php-fpm.service
[Unit]  Description=php-fpm  After=network.target  [Service]  Type=forking  ExecStart=/etc/init.d/php-fpm start  ExecReload=/etc/init.d/php-fpm restartExecStop=/etc/init.d/php-fpm stop  PrivateTmp=true  [Install]  WantedBy=multi-user.target  

4、redis

vim /etc/rc.d/init.d/redis
#!/bin/sh###########################  PATH=/usr/local/bin:/sbin:/usr/bin:/bin  REDISPORT=6379EXEC=/usr/local/src/redis/src/redis-serverREDIS_CLI=/usr/local/src/redis/src/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/usr/local/src/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          if [ "$?"="0" ]           then                echo "Redis is running..."          fi          ;;      stop)          if [ ! -f $PIDFILE ]          then                  echo "$PIDFILE does not exist, 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  ##############################  
vim /lib/systemd/system/redis.service
[Unit]Description=redisAfter=network.target[Service]Type=forkingExecStart=/etc/init.d/redis startExecReload=/etc/init.d/redis restartExecStop=/etc/init.d/redis stopPrivateTmp=true[Install]WantedBy=multi-user.target

5、说明

1、创建自启动脚本以后都要给可执行权限,如:

chmod a+x /etc/init.d/nginx chmod a+x /etc/init.d/php-fpm

2、服务文件说明

[Unit]:服务的说明Description:描述服务After:描述服务类别[Service]服务运行参数的设置Type=forking是后台运行的形式ExecStart为服务的具体运行命令ExecReload为重启命令ExecStop为停止命令PrivateTmp=True表示给服务分配独立的临时空间注意:[Service]的启动、重启、停止命令全部要求使用绝对路径[Install]服务安装的相关设置,可设置为多用户

3、服务文件目录:

/lib/systemd/system  

4、命令说明:

启动nginx服务systemctl start nginx.service设置开机自启动systemctl enable nginx.service停止开机自启动systemctl disable nginx.service查看服务当前状态systemctl status nginx.service重新启动服务systemctl restart nginx.service查看所有已启动的服务systemctl list-units --type=service

参考:
http://www.centoscn.com/CentOS/config/2015/0507/5374.html

0 0
原创粉丝点击