我使用过的Linux命令之service - 系统服务管理

我使用过的Linux命令之service - 系统服务管理

本文链接:http://codingstandards.iteye.com/blog/985455   (转载请注明出处)

 

用途说明

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命令系列总目录

 

Linux/Ubuntu/Debian常用服务管理命令 通过一些常用的命令,我们可以查看服务状态、启动或停止服务、重启服务等。这个命令用于列出所有服务的状态。它会显示系统中所有服务的当前状态,是一个非常有用的命令,能够帮助管理员快速了解所有服务的运行情况。这个命令用于重启指定的服务。重启服务包括先停止再启动的过程,适用于需要刷新服务配置或服务出现问题时。是一个管理网络连接的服务,通过这个命令可以查看其运行状态、启动时间、日志等信息。命令来提升权限,因为启动系统服务需要管理员权限。这个命令用于停止指定的服务。这个命令用于启动指定的服务。列出所有服务的状态。 阅读详情

相关推荐

重启网络服务

---------------------------------------------------------------- /etc/hostname 存放的是主机名 /etc/hosts 存放的是域名与ip的对应关系,域名与主机名没有任何关系 /etc/sysconfig/network-scripts/ 予许访问外网: cat /etc/sysconfig/network NETWORKING=yes 重启网络服务: 启动 service...

顶顶顶顶顶顶顶顶顶顶顶顶 2464

Linux查看所有service的状态

查看Linux所有服务的运行状态可输入命令 service --status-all 注意:-all要紧跟在–status后面,中间不要有空格 结果为: 那么,服务名称前面的加减号 [+] [-] 是什么意思呢? [+] 代表服务是在启动运行的状态 [-] 代表服务是在关闭停止的状态 我们来做个验证,以apache2服务为例。 现在的 apache2 是 [+] 的状态,即正在启动运行中...

weixin_40367126的博客 1万+

哨兵一号数据下载

哨兵1号数据的下载过程

weixin_59617499的博客 5135

linux学习2:service命令

1、基础说明 service [option] | – status-all | [service_name [command | full-restart] ] 控制服务的启动、暂停、重启;查看服务的状态信息 2、选项说明 –status-all:查看所有服务的状态信息 –full-restart:重启服务,停掉服务,然后开启服务 service_name command:控制服务 2....

卫卫的博客 1559

固定翼飞行器建模(一)——六自由度动力学

前两期文章讲完了气动力和气动力矩的模型,本期将来讲解一下六自由度部分的动力学与运动学方程。

2302_80148937的博客 1万+

直流有刷电机三环PID控制:从硬件配置到软件调试全解析

本文全面解析了直流有刷电机的三环PID控制技术,涵盖从硬件选型(如驱动板、编码器)到STM32软件配置的全过程。详细阐述了位置环、速度环、电流环的串级协同工作原理与调试方法,并提供了位置式PID算法的C语言实现代码及参数整定技巧,旨在帮助开发者实现精准、稳定的电机运动控制。

weixin_29290963的博客 387

Linux 进程与服务管理:使用systemctl、service命令管理系统服务

在Linux系统中,服务通常是指后台运行的进程,它们在系统启动时自动启动,并为用户和其他程序提供服务。进程与服务管理是Linux系统运维的基础。systemctl和service命令为我们提供了强大的工具来管理系统服务。通过本文的介绍,你应该能够熟练地使用这些命令来管理服务,并确保系统的稳定运行。

weixin_39372311的博客 1479

OLLAMA_HOST环境变量设置全攻略:从127.0.0.1到局域网共享的完整配置

本文详细解析了OLLAMA_HOST环境变量的核心作用与配置方法,指导用户如何将Ollama服务从仅限本机访问(127.0.0.1)扩展到局域网共享。文章涵盖了macOS、Linux、Windows三大平台的实战配置步骤,并提供了安全加固、性能优化及常见故障排查方案,是解决多设备协作访问本地AI模型的完整指南。

weixin_28455801的博客 1896

service 命令介绍和使用案例

功能service命令允许用户控制系统服务的运行状态,包括启动、停止、重启和查看服务状态。用途:常用于系统管理,特别是在需要管理服务时(如 Web 服务器、数据库服务器等)。service命令是一个简单而有效的工具,用于管理 Linux 系统中的服务。通过掌握其基本用法,您可以轻松地启动、停止和检查服务状态,确保系统正常运行。在现代 Linux 系统中,了解如何与 systemd 配合使用也是非常重要的。

1033

rosbag分析传感器数据的时间同步情况方法

ROS传感器时间同步分析流程:通过rosbaginfo初步检查bag文件信息,使用rqt_bag可视化时间线分布,采用rostopicecho或Python脚本提取各传感器时间戳并计算时间差统计值(均值/最大差/标准差),最后分析接收与采样时间延迟。量化评估同步精度,识别固定偏移或随机抖动问题,确保多传感器数据对齐,为后续融合处理提供可靠数据基础。

start_up_go的博客 201

我装了10个ClawHub技能,这些最好用!

ClawHub就是Clawdbot的"应用商店"。Clawdbot是手机ClawHub是App Store技能就是各种App装了技能,Clawdbot才能干更多事。这个技能解决了我的信息过载问题。为什么装我订阅了很多Newsletter。每天收到一堆长文章,根本看不完。怎么用“总结这篇文章的核心观点”“把这个Newsletter提炼成3个要点”“这篇技术博客有哪些可以实践的建议?安装命令真实体验现在我收到长文章,直接转发给Clawdbot。它会提炼出核心要点和行动清单。

Maynor的博客 6099

Linux操作系统之系统服务管理命令 systemctl service chkconfig

1 所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。 2 命令介绍 service命令:可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。(当前会话),是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。 chkconfig命令:控制在系统启动的时候是否自动开启,系统关闭前是否自动关闭。(永久性) systemctl命令:...

xiaoliuliu2050的专栏 1270

PyQt5开发应聘简历模版

该工具旨在帮助用户对Excel、CSV格式的数据进行快速导入、分析及可视化展示,支持折线图、柱状图、饼图等多种图表类型,提供数据筛选、排序、统计等功能,适用于企业数据分析人员日常工作。:一款用于本地文件管理的桌面应用,支持文件的新建、复制、移动、删除、重命名等基本操作,具备文件搜索、分类整理、批量操作及文件信息查看等功能,提升用户文件管理效率。:熟悉QSS(Qt Style Sheet)样式表,可对PyQt5界面进行个性化美化,包括控件颜色、字体、边框、布局等样式定制,提升应用视觉体验。

ybmzlqzj的博客 83

Linux服务管理命令service与systemctl

service命令 Ubuntu中service命令用于对系统服务进行管理,service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。 可通过sercice SCRIPT COMMAND命令管理服务,SCRIPT为/etc/init.d/中存放的可执行脚本文件: service SCRIPT start #启动服务 service SCRIPT stop #停止服务 service SCRIPT restart #重

苏木川的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Linux 服务管理两种方式service和systemctl

Linux 服务管理两种方式service和systemctl 1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 service redis start # 直接启动redis脚本 /etc/init.d/redis start # 开机自启动 update-rc.d redis defaults 其中脚本需要...

weixin_33836223的博客 577

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux中systemctl详细理解及常用命令

一、systemctl理解 Linux 服务管理两种方式service和systemctl systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。 systemd对应的进程管理命令是systemctl 1. systemctl命令兼容了service 即systemctl也会去/etc/init.d目录下...

skh2015java的博客 28万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux 命令:service、systemd、systemctl

linux 命令:service、systemd、systemctl

freeking101的博客 6926

linux 服务管理

一、简介与分类 1,系统的运行级别 2,服务的分类 xinetd 超级守护服务 管理后台程序 一般2345 启动状态一并开始 3,服务与端口 如果把ip地址比作一间房子,端口就是出入这间房子的门,一个IP地址端口可以有65536个 二,RPM包服务管理 rpm包,两种方法都可以 service 是redhat 系统特有 源码包安装位置不在 /etc/init.d 所以默认服务管理命令不能打开 /etc/rc.d/rc.local 文件是系统开机前最后执行的

Aring的博客 199

Linux上systemctl 和 service 两个命令的区别和联系

systemctl和service两个命令都是 Linux 系统中用于管理服务的工具,但它们分别关联着不同的初始化系统(init system),并且在功能和使用场景上有所差异。service。

2873

service命令使用教程

Service 有三种语法,最简单的第三种不用多说 第一种,service script command [options]的用法 Script参数为一个System V init script或者是systemd unit,System V init script存放在/etc/init.d/文件夹下面。 如果systemd unit和System V init script的名字相同,则优先使用systemd unit 若script参数是System V init script,COMMAND参数

m0_43406494的博客 3350

Linux系统命令

常见系统管理命令    网络管理:        ==》 ifconfig(查看网络管理 windows系统的是ipconfig)    服务管理命令        ==》 service :             格式:service s_name + start|stop|status|restart(开启|关闭|当前状态|重启)       ==》cd /etc/init.d/(在输入...

IT_laobai的博客 428

linux 文件服务,详解Linux 服务管理两种方式service和systemctl

1.service命令service命令其实是去/etc/init.d目录下,去执行相关程序# service命令启动redis脚本service redis start# 直接启动redis脚本/etc/init.d/redis start# 开机自启动update-rc.d redis defaults其中脚本需要我们自己编写2.systemctl命令systemd是Linux系统最新的初始化...

weixin_33179060的博客 498
上一篇: 我使用过的Linux命令之rm - 删除文件或目录,当心系统毁灭
下一篇: 我使用过的Linux命令之sftp - 安全文件传输命令行工具
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值