linux下找不到service命令,Linux命令之Service —— 管理系统服务

service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。相关的命令还包括chkconfig、ntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、mandriva和centos中。

常用的service命令:

重启MySQL:service mysqld restart

**启动**:`service mysqld` `start`

``**停止**:`service mysqld` `stop` ``

查看状态:service mysqld status

**查看**所有服务的状态:`service` `--status-all`

重载配置:service mysqld reload`【不同于重启,restart是重启了整个mysql服务,而reload则是重新加载了my.conf配置,也并不是每一个应用程序都有所谓的 reload 和 restart】`

1460000021888014

有兴趣的童鞋可以看下service脚本的源码:

tail /sbin/service

1460000021888015

其实这个脚本service主要做了如下两点:

1.初始化执行环境变量PATH和TERM

PATH=/sbin:/usr/sbin:/bin:/usr/bin

TERM,为显示外设的值,一般为xterm

2.调用/etc/init.d/文件夹下的相应脚本,脚本的参数为service命令第二个及之后的参数

从下图可以看到mysqld为/etc/init.d/下面的一个可执行文件:

1460000021888017

以service mysqld restart命令为例,其中restart为参数,将传递给mysqld脚本,这个命令在service执行到后面最终调用的是:

env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}

就相当于执行了:/etc/init.d/mysqld restart

拓展知识 -- 自定义Linux Service

有兴趣的童鞋可以跟我一起写个service服务脚本玩玩,我们可以先看下mysqld服务的内容,仿照着写一写:

tail /etc/init.d/mysqld

# mysqld This shell script takes care of starting and stopping

# chkconfig: 345 64 36

# description: MySQL database server.

# Source function library.

. /etc/rc.d/init.d/functions

--- start、stop等函数 ---

restart(){

stop

start

}

我们不需要全部看懂,我们自己写个service服务脚本的目的是为了更好的了解service相关知识,所以我们看懂下面几个关键地方就行了:

chkconfig: 345 64 36:用chkconfig命令管理我们的新服务脚本

. /etc/rc.d/init.d/functions :functions这个脚本是给/etc/init.d里边的文件使用的(可理解为全局文件)。

start、stop等函数的定义和调用

源码如下:

#!/bin/bash

# source function library

. /etc/rc.d/init.d/functions

# chkconfig: 345 85 15

# description: This is a haoCoding Test Service.

usage() {

echo " usage:$0 {start|stop|restart} "

}

start() {

echo "haoCoding Service Started!"

}

stop() {

echo "haoCoding Service Stopped!"

}

restart() {

stop

start

}

#main function

case $1 in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

*)

usage

;;

esac

记得chmod a+x haoCodingService给予权限。

好的,我们现在测试下,输入service haoCodingService start命令试试【注意:我的service脚本文件名称是haoCodingService,所以服务名就是文件名】

1460000021888016

非常成功,Yes!!!

Github源码下载地址:

系统

# uname -a # 查看内核/操作系统/CPU信息

# head -n 1 /etc/issue # 查看操作系统版本

# cat /proc/cpuinfo # 查看CPU信息

# hostname # 查看计算机名

# lspci -tv # 列出所有PCI设备

# lsusb -tv # 列出所有USB设备

# lsmod # 列出加载的内核模块

# env # 查看环境变量

资源

# free -m # 查看内存使用量和交换区使用量

# df -h # 查看各分区使用情况

# du -sh # 查看指定目录的大小

# grep MemTotal /proc/meminfo # 查看内存总量

# grep MemFree /proc/meminfo # 查看空闲内存量

# uptime # 查看系统运行时间、用户数、负载

# cat /proc/loadavg # 查看系统负载

磁盘和分区

# mount | column -t # 查看挂接的分区状态

# fdisk -l # 查看所有分区

# swapon -s # 查看所有交换分区

# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

# dmesg | grep IDE # 查看启动时IDE设备检测状况

网络

# ifconfig # 查看所有网络接口的属性

# iptables -L # 查看防火墙设置

# route -n # 查看路由表

# netstat -lntp # 查看所有监听端口

# netstat -antp # 查看所有已经建立的连接

# netstat -s # 查看网络统计信息

进程

# ps -ef # 查看所有进程

# top # 实时显示进程状态

用户

# w # 查看活动用户

# id # 查看指定用户信息

# last # 查看用户登录日志

# cut -d: -f1 /etc/passwd # 查看系统所有用户

# cut -d: -f1 /etc/group # 查看系统所有组

# crontab -l # 查看当前用户的计划任务

服务

# chkconfig --list # 列出所有系统服务

# chkconfig --list | grep on # 列出所有启动的系统服务

程序

# rpm -qa # 查看所有安装的软件包

参考文章:

自定义Linux Service:

service命令:

linux service命令解析(重要):

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值