linux命令service与chkconfig用法教程

发布时间:2020-02-29编辑:脚本学堂
本文介绍了linux命令service与chkconfig的用法,介绍这二个命令的使用实例,感兴趣的朋友可以参考下。

一,service与chkconfig命令的常用方式
格式:service <service>
打印指定服务<service>的命令行使用帮助。
 
格式:service <service> start
启动指定的系统服务<service>
 
格式:service <service> stop
停止指定的系统服务<service>
 
格式:service <service> restart
重新启动指定的系统服务<service>,即先停止(stop),然后再启动(start)。
 
格式:chkconfig --list
查看系统服务列表,以及每个服务的运行级别
 
格式:chkconfig <service> on
设置指定服务<service>开机时自动启动。
 
格式:chkconfig <service> off
设置指定服务<service>开机时不自动启动。
 
格式:ntsysv
以全屏幕文本界面设置服务开机时是否自动启动。
 
二,service与chkconfig命令的实例
例一 网络重启
当修改了主机名、IP地址等信息时,经常需要把网络重启使之生效。
[root@node34 root]# service network
用法:/etc/init.d/network {start|stop|restart|reload|status}
[root@node34 root]# service network status
配置设备:
lo eth0
当前的活跃设备:
lo eth0
[root@node34 root]# service network restart
正在关闭接口 eth0:[  确定  ]
关闭环回接口:     [  确定  ]
设置网络参数:     [  确定  ]
弹出环回接口:     [  确定  ]
弹出界面 eth0:    [  确定  ]
[root@node34 root]#
 
例二 重启mysql
[root@node34 root]# service mysqld
用法:/etc/init.d/mysqld {start|stop|status|condrestart|restart}
[root@node34 root]# service mysqld status
mysqld (pid 1638) 正在运行...
 

复制代码 代码示例:
[root@node34 root]# service mysqld restart
停止 MySQL:       [  确定  ]
启动 MySQL:       [  确定  ]

例三 service脚本源码展示
 

复制代码 代码示例:
[root@web ~]# cat /sbin/service
#!/bin/sh 
. /etc/init.d/functions 
 
VERSION="`basename $0` ver. 0.91" 
USAGE="Usage: `basename $0` < option > | --status-all |  
[ service_name [ command | --full-restart ] ]" 
SERVICE= 
SERVICEDIR="/etc/init.d"  
OPTIONS= 
 
if [ $# -eq 0 ]; then 
   echo "${USAGE}" >&2 
   exit 1 
fi 
 
cd / 
while [ $# -gt 0 ]; do 
  case "${1}" in 
    --help | -h | --h* ) 
       echo "${USAGE}" >&2 
       exit 0 
       ;; 
    --version | -V ) 
       echo "${VERSION}" >&2 
       exit 0 
       ;; 
    *) 
       if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then 
          cd ${SERVICEDIR} 
          for SERVICE in * ; do 
            case "${SERVICE}" in 
              functions | halt | killall | single| linuxconf| kudzu) 
                  ;; 
              *) 
                if ! is_ignored_file "${SERVICE}"  
                    && [ -x "${SERVICEDIR}/${SERVICE}" ]; then 
                  env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" status 
                fi 
                ;; 
            esac 
          done 
          exit 0 
       elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then 
          SERVICE="${1}" 
          if [ -x "${SERVICEDIR}/${SERVICE}" ]; then 
            env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" stop 
            env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" start 
            exit $? 
          fi 
       elif [ -z "${SERVICE}" ]; then 
         SERVICE="${1}" 
       else 
         OPTIONS="${OPTIONS} ${1}" 
       fi 
       shift 
       ;; 
   esac 
done 
 
if [ -x "${SERVICEDIR}/${SERVICE}" ]; then 
   env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}  
else 
   echo $"${SERVICE}: unrecognized service" >&2 
   exit 1 
fi 

例四 crond服务的源码
 

复制代码 代码示例:
[root@web init.d]# cat /etc/init.d/crond
#! /bin/bash 

# crond          Start/Stop the cron clock daemon. 

# chkconfig: 2345 90 60  
# description: cron is a standard UNIX program that runs user-specified  
#              programs at periodic scheduled times. vixie cron adds a  
#              number of features to the basic UNIX cron, including better  
#              security and more powerful configuration options. 
# processname: crond 
# config: /etc/crontab 
# pidfile: /var/run/crond.pid 
 
# Source function library. 
. /etc/init.d/functions 
. /etc/sysconfig/crond 
t=${CRON_VALIDATE_MAILRCPTS:-UNSET} 
[ "$t" != "UNSET" ] && export CRON_VALIDATE_MAILRCPTS="$t" 
  
# See how we were called. 
   
prog="crond" 
 
start() { 
        echo -n $"Starting $prog: " 
        if [ -e /var/lock/subsys/crond ]; then 
            if [ -e /var/run/crond.pid ] && [ -e /proc/`cat /var/run/crond.pid` ]; then 
                echo -n $"cannot start crond: crond is already running."; 
                failure $"cannot start crond: crond already running."; 
                echo 
                return 1 
            fi 
        fi 
        daemon crond $CRONDARGS 
        RETVAL=$? 
        echo 
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/crond; 
        return $RETVAL 

 
stop() { 
        echo -n $"Stopping $prog: " 
        if [ ! -e /var/lock/subsys/crond ]; then 
            echo -n $"cannot stop crond: crond is not running." 
            failure $"cannot stop crond: crond is not running." 
            echo 
            return 1; 
        fi 
        killproc crond 
        RETVAL=$? 
        echo 
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/crond; 
        return $RETVAL 

 
rhstatus() { 
        status crond 

 
restart() { 
        stop 
        start 

 
reload() { 
        echo -n $"Reloading cron daemon configuration: " 
        killproc crond -HUP 
        RETVAL=$? 
        echo 
        return $RETVAL 

 
case "$1" in 
  start) 
        start 
        ;; 
  stop) 
        stop 
        ;; 
  restart) 
        restart 
        ;; 
  reload) 
        reload 
        ;; 
  status) 
        rhstatus 
        ;; 
  condrestart) 
        [ -f /var/lock/subsys/crond ] && restart || : 
        ;; 
  *) 
        echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}" 
        exit 1 
esac

脚本学堂小编总结:
以上通过实例介绍了linux命令之service与chkconfig命令的用法,这二个命令在配置linux服务时很有用,建议大家牢固掌握。