1. 用途说明
  2.  
  3. service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。
    相关的命令还包括chkconfigntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。
    service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。
  4.  
  5. 看看下面的手册页可能更加清楚的了解service的内幕:service运行指定服务(称之为System V初始脚本)时,把大部分环境变量去掉了,
    只保留LANGTERM两个环境变量,并且把当前路径置为/,也就是说是在一个可以预测的非常干净的环境中运行服务脚本。这种脚本保存在/etc/init.d目录中,它至少要支持startstop命令。
  6.  
  7. man service 写道
  8. service(8) service(8)
  9.  
  10. NAME
  11. service - run a System V init script
  12.  
  13. SYNOPSIS
  14. service SCRIPT COMMAND [OPTIONS]
  15.  
  16. service --status-all
  17.  
  18. service --help | -h | --version
  19.  
  20. DESCRIPTION
  21. service runs a System V init script in as predictable environment as possible, removing most environment vari-
  22. ables and with current working directory set to /.
  23.  
  24. The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT. The supported values of
  25. COMMAND depend on the invoked script, service passes COMMAND and OPTIONS it to the init script unmodified. All
  26. scripts should support at least the start and stop commands. As a special case, if COMMAND is --full-restart,
  27. the script is run twice, first with the stop command, then with the start command.
  28.  
  29. service --status-all runs all init scripts, in alphabetical order, with the status command.
  30.  
  31. FILES
  32. /etc/init.d
  33. The directory containing System V init scripts.
  34.  
  35. ENVIRONMENT
  36. LANG, TERM
  37. The only environment variables passed to the init scripts.
  38.  
  39. SEE ALSO
  40. chkconfig(8), ntsysv(8)
  41.  
  42. Jan 2006 service(8)
  43.  
  44. 常用方式
  45.  
  46. 格式:service <service>
  47.  
  48. 打印指定服务<service>的命令行使用帮助。
  49.  
  50. 格式:service <service> start
  51.  
  52. 启动指定的系统服务<service>
  53.  
  54. 格式:service <service> stop
  55.  
  56. 停止指定的系统服务<service>
  57.  
  58. 格式:service <service> restart
  59.  
  60. 重新启动指定的系统服务<service>,即先停止(stop),然后再启动(start)。
  61.  
  62. 格式:chkconfig --list
  63.  
  64. 查看系统服务列表,以及每个服务的运行级别。
  65.  
  66. 格式:chkconfig <service> on
  67.  
  68. 设置指定服务<service>开机时自动启动。
  69.  
  70. 格式:chkconfig <service> off
  71.  
  72. 设置指定服务<service>开机时不自动启动。
  73.  
  74. 格式:ntsysv
  75.  
  76. 以全屏幕文本界面设置服务开机时是否自动启动。
  77.  
  78. 使用示例
  79. 示例一 网络重启
  80.  
  81. 当修改了主机名、ip地址等信息时,经常需要把网络重启使之生效。
  82.  
  83. [root@node34 root]# service network
  84. 用法:/etc/init.d/network {start|stop|restart|reload|status}
  85. [root@node34 root]# service network status
  86. 配置设备:
  87. lo eth0
  88. 当前的活跃设备:
  89. lo eth0
  90. [root@node34 root]# service network restart
  91. 正在关闭接口 eth0 [ 确定 ]
  92. 关闭环回接口: [ 确定 ]
  93. 设置网络参数: [ 确定 ]
  94. 弹出环回接口: [ 确定 ]
  95. 弹出界面 eth0 [ 确定 ]
  96. [root@node34 root]#
  97.  
  98. 示例二 重启MySQL
  99.  
  100. [root@node34 root]# service mysql
  101. mysql: unrecognized service
  102. [root@node34 root]# service mysqld
  103. 用法:/etc/init.d/mysqld {start|stop|status|condrestart|restart}
  104. [root@node34 root]# service mysqld status
  105. mysqld (pid 1638) 正在运行...
  106. [root@node34 root]# service mysqld restart
  107. 停止 MySQL [ 确定 ]
  108. 启动 MySQL [ 确定 ]
  109. [root@node34 root]#
  110.  
  111. 示例三 service脚本源码展示
  112.  
  113. [root@web ~]# cat /sbin/service
  114. #!/bin/sh
  115.  
  116. . /etc/init.d/functions
  117.  
  118. VERSION="`basename $0` ver. 0.91"
  119. USAGE="Usage: `basename $0` < option > | --status-all | \
  120. [ service_name [ command | --full-restart ] ]"
  121. SERVICE=
  122. SERVICEDIR="/etc/init.d"
  123. OPTIONS=
  124.  
  125. if [ $# -eq 0 ]; then
  126. echo "${USAGE}" >&2
  127. exit 1
  128. fi
  129.  
  130. cd /
  131. while [ $# -gt 0 ]; do
  132. case "${1}" in
  133. --help | -h | --h* )
  134. echo "${USAGE}" >&2
  135. exit 0
  136. ;;
  137. --version | -V )
  138. echo "${VERSION}" >&2
  139. exit 0
  140. ;;
  141. *)
  142. if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
  143. cd ${SERVICEDIR}
  144. for SERVICE in * ; do
  145. case "${SERVICE}" in
  146. functions | halt | killall | single| linuxconf| kudzu)
  147. ;;
  148. *)
  149. if ! is_ignored_file "${SERVICE}" \
  150. && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  151. env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" status
  152. fi
  153. ;;
  154. esac
  155. done
  156. exit 0
  157. elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
  158. SERVICE="${1}"
  159. if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  160. env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" stop
  161. env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" start
  162. exit $?
  163. fi
  164. elif [ -z "${SERVICE}" ]; then
  165. SERVICE="${1}"
  166. else
  167. OPTIONS="${OPTIONS} ${1}"
  168. fi
  169. shift
  170. ;;
  171. esac
  172. done
  173.  
  174. if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  175. env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
  176. else
  177. echo $"${SERVICE}: unrecognized service" >&2
  178. exit 1
  179. fi
  180. [root@web ~]#
  181.  
  182. 示例四 crond服务的源码
  183.  
  184. [root@web init.d]# cat /etc/init.d/crond
  185. #! /bin/bash
  186. #
  187. # crond Start/Stop the cron clock daemon.
  188. #
  189. # chkconfig: 2345 90 60
  190. # description: cron is a standard UNIX program that runs user-specified \
  191. # programs at periodic scheduled times. vixie cron adds a \
  192. # number of features to the basic UNIX cron, including better \
  193. # security and more powerful configuration options.
  194. # processname: crond
  195. # config: /etc/crontab
  196. # pidfile: /var/run/crond.pid
  197.  
  198. # Source function library.
  199. . /etc/init.d/functions
  200. . /etc/sysconfig/crond
  201. t=${CRON_VALIDATE_MAILRCPTS:-UNSET}
  202. [ "$t" != "UNSET" ] && export CRON_VALIDATE_MAILRCPTS="$t"
  203.  
  204. # See how we were called.
  205.  
  206. prog="crond"
  207.  
  208. start() {
  209. echo -n $"Starting $prog: "
  210. if [ -e /var/lock/subsys/crond ]; then
  211. if [ -e /var/run/crond.pid ] && [ -e /proc/`cat /var/run/crond.pid` ]; then
  212. echo -n $"cannot start crond: crond is already running.";
  213. failure $"cannot start crond: crond already running.";
  214. echo
  215. return 1
  216. fi
  217. fi
  218. daemon crond $CRONDARGS
  219. RETVAL=$?
  220. echo
  221. [ $RETVAL -eq 0 ] && touch /var/lock/subsys/crond;
  222. return $RETVAL
  223. }
  224.  
  225. stop() {
  226. echo -n $"Stopping $prog: "
  227. if [ ! -e /var/lock/subsys/crond ]; then
  228. echo -n $"cannot stop crond: crond is not running."
  229. failure $"cannot stop crond: crond is not running."
  230. echo
  231. return 1;
  232. fi
  233. killproc crond
  234. RETVAL=$?
  235. echo
  236. [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/crond;
  237. return $RETVAL
  238. }
  239.  
  240. rhstatus() {
  241. status crond
  242. }
  243.  
  244. restart() {
  245. stop
  246. start
  247. }
  248.  
  249. reload() {
  250. echo -n $"Reloading cron daemon configuration: "
  251. killproc crond -HUP
  252. RETVAL=$?
  253. echo
  254. return $RETVAL
  255. }
  256.  
  257. case "$1" in
  258. start)
  259. start
  260. ;;
  261. stop)
  262. stop
  263. ;;
  264. restart)
  265. restart
  266. ;;
  267. reload)
  268. reload
  269. ;;
  270. status)
  271. rhstatus
  272. ;;
  273. condrestart)
  274. [ -f /var/lock/subsys/crond ] && restart || :
  275. ;;
  276. *)
  277. echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
  278. exit 1
  279. esac
  280. [root@web init.d]#
  281.  
  282. 问题思考
  283. 相关资料
  284.  
  285. 1】测试人生 linux 中不常用的命令--service
  286. http://www.51testing.com/?uid-66775-action-viewspace-itemid-78574
  287. 2linux大棚 service》-“linux命令五分钟系列”之二
  288. http://roclinux.cn/?p=47
  289. 3yqh860921 Linux Service 服务管理
  290. http://blogold.chinaunix.net/u3/95470/showart_1934759.html
  291. 4】酷勤 Linux system service 注释
  292. http://www.kuqin.com/linux/20090824/67321.html
  293. 5momodog 自定义Linux Service
  294. http://momodog.iteye.com/blog/286047

Linux命令中service的用法的更多相关文章

  1. Linux命令中特殊符号

    转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html   在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'strin ...

  2. [转帖]Linux命令中特殊符号

    Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html   在shell中常用的特殊符号罗列如下:# ; ;; . ...

  3. Linux命令中:rsync和cp之间的区别

    rsync:只拷贝那些更新的文件: cp -u:也可以实现类似效果: 两者都基本可以满足备份的需求: 只是一般情况下,用rsync做这类备份之类的事情,更多见: 在备份的操作中,拷贝,过期文件的删除是 ...

  4. Linux命令中使用正则表达式

    在使用grep.awk和sed命令时,需要使用正则表达式.比如我通过grep找代码编译结果中是否有错误.或者是否有我代码的错误.这里说下正则表达式基本的应用: • 匹配行首与行尾.• 匹配数据集.• ...

  5. linux命令中的“<”和“|”是什么意思?

    ”<” 表示的是输入重定向的意思,就是把<后面跟的文件取代键盘作为新的输入设备.”| ”则表示一个管道的意思,可以理解为东西从管道的一边流向另外一边.   cat file.json | ...

  6. Linux命令中dd的作用

    Linux命令中用vi编辑文本时dd的作用是删除整行文本的信息.

  7. Linux 命令中 more、less、head、tail 命令的用法

    more 命令 more 命令,功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上. more 命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)往 ...

  8. Linux 命令中 find 和 xargs 命令的用法

    find 命令(一) find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作.Linux 下 find 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大. ...

  9. Linux 命令中 which、whereis、locate 命令的用法

    which 命令 which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置.它一般用来确认系统中是否安装了指定的软件. (1)命令格式 which 可执行文件名称 wherei ...

随机推荐

  1. 一入 Java 深似海【目录】-----------------------------------------【目录】

    [目录] 一.计算机相关知识 1. 2. 3. 二.Java 基础语法 1.Java 语言概述 2.数据类型 & 变量与常量 & 注释 3.运算符 4.流程控制语句 之 顺序结构 5. ...

  2. Vue递归组件实现层层嵌套显示数据

    问题来自朋友...记录一下 需求是表格头部后端返回的数据中是不确定的 n维数据,表头存在于 listVo 字段中,如何实现层层显示呢? 温馨提示,以下内容为5张大图,请打开 WIFI 享用... 以下 ...

  3. scrapy设置logger日志

    1.在settings中设置log级别,在settings.py中添加一行: LOG_LEVEL = 'WARNING' Scrapy提供5层logging级别: CRITICAL - 严重错误 ER ...

  4. 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机

    1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...

  5. QElapsedTimer定时器记录程序执行时间

    QElapedTimer类提供了一种快速计算运行时间的方法,从Qt4.7引入. QElapsedTimer类通常用于快速计算两个事件之间经过了多少时间.它的API与QTime相似,因此可以将正在使用的 ...

  6. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

    在使用深度学习框架的过程中一定会经常碰到这些东西,虽然anaconda有时会帮助我们自动地解决这些设置,但是有些特殊的库却还是需要我们手动配置环境,但是我对标题上的这些名词其实并不十分清楚,所以老是被 ...

  7. vue-router编程式跳转

    除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现. [语法] .

  8. html--前端基本标签内容讲解

    body里面分为两类标签:块级标签和内联标签. 1.块级标签:<p><h1><table><ol><ul><form><d ...

  9. django请求限制

    django.views.decorators.http 包里的装饰器可以基于请求的方法来限制对视图的访问. 限制视图只能服务规定的http方法.用法: from django.views.decor ...

  10. ESA2GJK1DH1K基础篇: 来吧! 彻底了解一下MQTT

    首先你需要知道MQTT并不是什么高大上的事物,它只是一个软件,对就是一个软件.其实就是个TCP服务器 一,既然是TCP服务器,这个TCP服务器和咱平时做的有什么不一样呢. 首先,平时的时候咱做的TCP ...