linux 如何启动,停止,查看服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 如何启动,停止,查看服务相关的知识,希望对你有一定的参考价值。

命令

linux下启动服务的方式:

#service file restart || servicer file start

linux下停止服务的方式:

#service file stop
linux下查看服务的方式:

#service file status

以上是最常用的方式,同样你也可以通过/etc目录下的相关文件进行状态操作;而对于停止服务也可以利用进程号的方式kill进程;
如果在终端不适应情况下还可以进行桌面操作,进入系统应用中的服务菜单,就可以对相关服务进行管理和控制。
参考技术A   可以使用chkconfig --list来列出所有的系统服务,也可以使用service --status-all来查看启动的服务。通过service 服务名 stop 命令来停止服务。

命令说明:
chkconfig命令
  chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
语法
 chkconfig(选项)
选项
 --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
 --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
 --level:指定读系统服务要在哪一个执行等级中开启或关毕。
等级代号列表:
 等级0表示:表示关机
 等级1表示:单用户模式
 等级2表示:无网络连接的多用户命令行模式
 等级3表示:有网络连接的多用户命令行模式
 等级4表示:不可用
 等级5表示:带图形界面的多用户模式
 等级6表示:重新启动
 需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

 运行级文件:

 每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-代替运行级。第二行对服务进行描述,可以用\跨行注释。
 例如random.init包含三行:
 # chkconfig: 2345 20 80
 # description: Saves and restores system entropy pool for \
 # higher quality random number generation.
实例
 chkconfig --list #列出所有的系统服务。
 chkconfig --add httpd #增加httpd服务。
 chkconfig --del httpd #删除httpd服务。
 chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
 chkconfig --list #列出系统所有的服务启动情况。
 chkconfig --list mysqld #列出mysqld服务设置情况。
 chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。
 chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。

service命令
  service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
语法
 service(选项)(参数)
选项
 -h:显示帮助信息;
 --status-all:显示所服务的状态。
参数
 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
 控制命令:系统服务脚本支持的控制命令。
参考技术B 不同系统有不同
/etc/init.d/服务 start | stop | status本回答被提问者采纳

如何使用 shell 脚本连接到 linux 服务器并停止/启动服务?

【中文标题】如何使用 shell 脚本连接到 linux 服务器并停止/启动服务?【英文标题】:How to connect to a linux server and stop/start a service using a shell script? 【发布时间】:2017-11-18 09:35:14 【问题描述】:

我想设置一个脚本,该脚本将连接到 linux 服务器,然后停止/启动服务。但是在服务停止和启动之间,它应该等待大约 10 秒,然后检查服务是否真的停止了。

service httpd stop
--wait 10 seconds. check ps -ef | grep httpd, kill if any hanged processes
service httpd start

有人可以帮我看看怎么做吗?

【问题讨论】:

使用sleepkill -9 而不是显式检查。 我可以使用用户名和密码连接到服务器吗?我正在检查表格,但大多数人说创建一个 ssh 密钥。我将在我想运行命令的同一台服务器上部署这个 shell 脚本 您当然可以将 ssh 服务器配置为接受密码。但不建议这样做,因为它比密钥更不安全。而且您只能以交互方式执行此操作,因此不能使用脚本。至少你不应该。 我正在尝试睡眠,但出现此错误 sleep: invalid time interval `10\r',你能告诉我如何解决这个问题吗?这是我在脚本中添加的内容:sleep 10 您显然需要指定要杀死的什么进程。如果您不确定它们的用法,请阅读您尝试使用的命令的手册页。例如man kill。在您的情况下,killall -9 /usr/sbin/httpd 可能是一个不错的选择,因为它不需要特定的进程 ID。 【参考方案1】:

wait 命令用于不同的目的,我们需要使用sleep 命令代替。

查看此链接了解详细差异。 https://***.com/a/13296927/3086531


检查进程是否正在运行的脚本

#!/bin/bash
UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
        echo "httpd is down.";
else
        echo "All is well.";
fi

您的最终代码将是

#!/bin/bash

service httpd stop 

sleep 10 

UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
  service httpd start  #start serivce again, since no process are found 
else
  echo "Service is not stopped yet.";
  killall -15 httpd  #Kills all processes related to httpd
  service httpd start #start httpd process
fi

【讨论】:

不需要这种复杂性。为什么还要检查是否还有一个进程,无论如何你都会硬杀它。无需检查即可触发killall -9,您就知道一切都很好。 @arkascha,应该优雅地停止进程。我们应该允许他们在终止之前执行清理程序(例如删除锁定文件、将内存中的数据刷新到硬盘等)。 然后用killall -15(或简单的killall)代替killall -9。那不是我的意思。 @arkascha,发送信号 15 (SIGTERM) 有什么问题?它是要被处理的,而 SIGKILL 不能被进程处理。 @SaiAvinash 为了将 java 应用程序作为服务运行,您需要在此处执行此过程***.com/a/11203626/3086531 或者这是您想要实现的简单解决方案***.com/a/11203634/3086531

以上是关于linux 如何启动,停止,查看服务的主要内容,如果未能解决你的问题,请参考以下文章

如何查看和停止Linux启动的服务

描述用命令如何启动,停止,重新启动和查看www服务?

linux如何查看mysql是否启动

linux如何查看mysql是否启动

如何终止LINUX自启动

linux的.service服务开机自启动后为啥会自动停止