当前位置:首页 > CN2资讯 > 正文内容

centos 脚本和终端 不一致 centos service脚本

3天前CN2资讯


Centos手动编写service命令脚本

一.动机

    虽然service命令有点老了,但是redhat和centos上面还是在继续使用着,我的VPS也是使用的centos系统,而且httpd服务是我手动编译安装的,每次启动都需要很长的执行命令,心中有了能否直接用service命令来执行的想法,然后就上网搜了些资料,现真理出来,方便以后查看。

二.知识

1.service man帮助文档:
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 variables 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 com- mand. 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) (END)

存在即合理,man帮助文档其实已经给了我们很多有用的信息,1.service是用来执行一个脚本的命令,格式为:service 脚本 命令

2.这些脚本都放在/etc/init.d文件下。

2./var/lock目录

很多程序需要判断是否当前已经有一个实例在运行,这个目录就是让程序判断是否有实例运行的标志,比如说xinetd,如果存在这个文件,表示已经有 xinetd在运行了,否则就是没有,当然程序里面还要有相应的判断措施来真正确定是否有实例在运行。通常与该目录配套的还有/var/run目录,用来存放对应实例的PID,如果你写脚本的话,会发现这2个目录结合起来可以很方便的判断出许多服务是否在运行,运行的相关信息等等。


从这段文字基本就能判断出/var/lock目录的作用了,其实我个人的简单理解就是用来判断进程的唯一性,在/var/lock/subsys中创建一个文件,来标识进程已创建,当执行service httpd start时,脚本判断是否在/var/lock/subsys下存在相应的文件,若存在则说明进程已经在执行,无需创建。

三.脚本创建

[bash]#!/bin/bash



#chkconfig: 2345 10 90     ##这一行一定要加,格式为chkconfig:#description:httpd service . /etc/init.d/functions    ##functions里面有system v的环境变量设置,脚本中也需要 HTTPD=httpd start(){ ##ps -aux|grep -i httpd|grep -v grep>/dev/null if [ -f /var/lock/subsys/$HTTPD ]; then echo "httpd is running…" else echo "httpd is starting…" ./opt/httpd2\.4/bin/httpd -k start touch /var/lock/subsys/httpd sleep 2 echo "httpd start OK." fi } stop(){ if [ -f /var/lock/subsys/$HTTPD ];then echo "Stopping httpd …" ./opt/httpd2\.4/bin/httpd -k stop rm -f  /var/lock/subsys/httpd sleep 2 echo "httpd stop OK." else echo "httpd is not running…" fi } restart(){ stop start } case "$1" in start) start;; stop) stop;; restart) restart;; *) echo $"Usage: ${HTTPD} {start|stop|restart}" exit 1 ;; esac



[/bash]
本实验关闭httpd是用的httpd自带命令,也可以使用killproc httpd来替代./opt/httpd2\.4/bin/httpd -k stop命令。此service启动脚本可以加入chkconfig中,使用chkconfig –add httpd即可加入。



转载于:https://blog.皇冠云.com/dragondragon/1751141

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19516.html

    分享给朋友:

    “centos 脚本和终端 不一致 centos service脚本” 的相关文章

    RackNerd主机服务评测:高性价比与卓越客户体验

    RackNerd是一家自2019年成立以来便迅速崛起的美国主机商。每当我想起这家公司,心中总是浮现出他们以高性价比著称的形象。初次接触时,我对他们的服务种类印象深刻:虚拟主机、VPS主机、独立服务器和服务器托管等。这些服务能满足不同行业和客户的需求,尤其是对预算有限的小型企业或创业者而言,RackN...

    如何利用阿里云24元优惠活动体验云计算服务

    阿里云是一家全球知名的云计算服务提供商,致力于为用户提供多样化的云计算产品与服务。最近推出的24元优惠活动,更是为不少用户带来了新的机遇。这项优惠活动的主要目标是让更多的个人和企业体验到优质的云服务,尤其是在数字化转型日益重要的今天。用户可以通过这一活动以超低价格体验阿里云的强大功能。 在参与这个优...

    inet.ws VPS测评:揭示高性价比主机服务的真实体验与分析

    在如今这个互联网发展的时代,选择一个可靠的虚拟专用服务器(VPS)提供商至关重要。我们要介绍的就是 inet.ws,一家国外的主机服务商。inet.ws 的主营业务是销售全球多节点的 VPS 服务器。自从 2023 年 8 月推出了全场 13 个机房的 7.5 折优惠活动后,它的性价比愈发吸引了许多...

    主机类型与高性能配置详解,选择最适合你的主机方案

    主机的定义与分类 什么是主机? 当我们谈论“主机”这个词时,通常指的是计算机系统,特别是在网络环境中提供服务或资源的设备。我个人觉得主机不仅仅是实体的机器,而是指在网络中扮演着重要角色的一种技术资源。它可以执行各种任务,从存储数据到托管网站,再到运行应用程序,主机的功能几乎无所不包。可以想象,主机就...

    全球云服务厂商排名分析:选择适合你的云服务平台

    在如今这个数字化快速发展的时代,云服务已经成为企业运营的核心。全球云服务市场正在以前所未有的速度增长,吸引了众多企业选择不同的云服务提供商。作为用户,当我们谈论云服务厂商时,不可避免地会提到几个行业巨头,显然,他们的市场份额和影响力在整个行业中是不可忽视的。 近年以来,亚马逊网络服务(AWS)稳居全...

    VPS去程测试:提升网络性能的关键策略与工具

    在当今数字化时代,VPS(虚拟专用服务器)为各类用户提供了极大的灵活性和控制力。为了确保这种服务能够表现出色,VPS去程测试成为了一个重要的话题。简单来说,去程测试是指从我本地设备到VPS服务器的数据传输路径的检查。这种测试能够帮助我了解数据包在传输过程中的表现,包括延迟和可能的瓶颈。 去程测试的重...