Linux命令中service的用法
- 用途说明
- service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。
相关的命令还包括chkconfig、ntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。
service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。- 看看下面的手册页可能更加清楚的了解service的内幕:service运行指定服务(称之为System V初始脚本)时,把大部分环境变量去掉了,
只保留LANG和TERM两个环境变量,并且把当前路径置为/,也就是说是在一个可以预测的非常干净的环境中运行服务脚本。这种脚本保存在/etc/init.d目录中,它至少要支持start和stop命令。- man service 写道
- service(8) service(8)
- NAME
- service - run a System V init script
- SYNOPSIS
- service SCRIPT COMMAND [OPTIONS]
- service --status-all
- service --help | -h | --version
- DESCRIPTION
- service runs a System V init script in as predictable environment as possible, removing most environment vari-
- ables and with current working directory set to /.
- The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT. The supported values of
- COMMAND depend on the invoked script, service passes COMMAND and OPTIONS it to the init script unmodified. All
- scripts should support at least the start and stop commands. As a special case, if COMMAND is --full-restart,
- the script is run twice, first with the stop command, then with the start command.
- service --status-all runs all init scripts, in alphabetical order, with the status command.
- FILES
- /etc/init.d
- The directory containing System V init scripts.
- ENVIRONMENT
- LANG, TERM
- The only environment variables passed to the init scripts.
- SEE ALSO
- chkconfig(8), ntsysv(8)
- Jan 2006 service(8)
- 常用方式
- 格式: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
- 以全屏幕文本界面设置服务开机时是否自动启动。
- 使用示例
- 示例一 网络重启
- 当修改了主机名、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 mysql
- mysql: unrecognized service
- [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: [ 确定 ]
- [root@node34 root]#
- 示例三 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
- [root@web ~]#
- 示例四 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
- [root@web init.d]#
- 问题思考
- 相关资料
- 【1】测试人生 linux 中不常用的命令--service
- http://www.51testing.com/?uid-66775-action-viewspace-itemid-78574
- 【2】linux大棚 《service》-“linux命令五分钟系列”之二
- http://roclinux.cn/?p=47
- 【3】yqh860921 Linux Service 服务管理
- http://blogold.chinaunix.net/u3/95470/showart_1934759.html
- 【4】酷勤 Linux system service 注释
- http://www.kuqin.com/linux/20090824/67321.html
- 【5】momodog 自定义Linux Service
- http://momodog.iteye.com/blog/286047
Linux命令中service的用法的更多相关文章
- Linux命令中特殊符号
转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html 在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'strin ...
- [转帖]Linux命令中特殊符号
Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html 在shell中常用的特殊符号罗列如下:# ; ;; . ...
- Linux命令中:rsync和cp之间的区别
rsync:只拷贝那些更新的文件: cp -u:也可以实现类似效果: 两者都基本可以满足备份的需求: 只是一般情况下,用rsync做这类备份之类的事情,更多见: 在备份的操作中,拷贝,过期文件的删除是 ...
- Linux命令中使用正则表达式
在使用grep.awk和sed命令时,需要使用正则表达式.比如我通过grep找代码编译结果中是否有错误.或者是否有我代码的错误.这里说下正则表达式基本的应用: • 匹配行首与行尾.• 匹配数据集.• ...
- linux命令中的“<”和“|”是什么意思?
”<” 表示的是输入重定向的意思,就是把<后面跟的文件取代键盘作为新的输入设备.”| ”则表示一个管道的意思,可以理解为东西从管道的一边流向另外一边. cat file.json | ...
- Linux命令中dd的作用
Linux命令中用vi编辑文本时dd的作用是删除整行文本的信息.
- Linux 命令中 more、less、head、tail 命令的用法
more 命令 more 命令,功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上. more 命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)往 ...
- Linux 命令中 find 和 xargs 命令的用法
find 命令(一) find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作.Linux 下 find 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大. ...
- Linux 命令中 which、whereis、locate 命令的用法
which 命令 which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置.它一般用来确认系统中是否安装了指定的软件. (1)命令格式 which 可执行文件名称 wherei ...
随机推荐
- 一入 Java 深似海【目录】-----------------------------------------【目录】
[目录] 一.计算机相关知识 1. 2. 3. 二.Java 基础语法 1.Java 语言概述 2.数据类型 & 变量与常量 & 注释 3.运算符 4.流程控制语句 之 顺序结构 5. ...
- Vue递归组件实现层层嵌套显示数据
问题来自朋友...记录一下 需求是表格头部后端返回的数据中是不确定的 n维数据,表头存在于 listVo 字段中,如何实现层层显示呢? 温馨提示,以下内容为5张大图,请打开 WIFI 享用... 以下 ...
- scrapy设置logger日志
1.在settings中设置log级别,在settings.py中添加一行: LOG_LEVEL = 'WARNING' Scrapy提供5层logging级别: CRITICAL - 严重错误 ER ...
- 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机
1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...
- QElapsedTimer定时器记录程序执行时间
QElapedTimer类提供了一种快速计算运行时间的方法,从Qt4.7引入. QElapsedTimer类通常用于快速计算两个事件之间经过了多少时间.它的API与QTime相似,因此可以将正在使用的 ...
- 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
在使用深度学习框架的过程中一定会经常碰到这些东西,虽然anaconda有时会帮助我们自动地解决这些设置,但是有些特殊的库却还是需要我们手动配置环境,但是我对标题上的这些名词其实并不十分清楚,所以老是被 ...
- vue-router编程式跳转
除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现. [语法] .
- html--前端基本标签内容讲解
body里面分为两类标签:块级标签和内联标签. 1.块级标签:<p><h1><table><ol><ul><form><d ...
- django请求限制
django.views.decorators.http 包里的装饰器可以基于请求的方法来限制对视图的访问. 限制视图只能服务规定的http方法.用法: from django.views.decor ...
- ESA2GJK1DH1K基础篇: 来吧! 彻底了解一下MQTT
首先你需要知道MQTT并不是什么高大上的事物,它只是一个软件,对就是一个软件.其实就是个TCP服务器 一,既然是TCP服务器,这个TCP服务器和咱平时做的有什么不一样呢. 首先,平时的时候咱做的TCP ...