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
有人可以帮我看看怎么做吗?
【问题讨论】:
使用sleep
和kill -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 如何启动,停止,查看服务的主要内容,如果未能解决你的问题,请参考以下文章