Linux service管理自定义脚本

今天需要在服务器上启动多个MySQL实例

新加的MySQL实例不能用mysqld_multi 管理,所以就自定了个mysql_3307服务,用service管理

可以看看service的代码,都是些简单的shell脚本

service的原理就是去/etc/init.d下找对应的服务脚本,然后调用脚本,service的第二个参数是传给调用的服务作为第一个参数

因此可以自已在/etc/init.d下写一个脚本,脚本中定义相应的start,stop,status等或者也可以自己加些别的动作,在增加个执行权限就可以了

以下是我的mysql_3307定义脚本:

start(){
n=$(netstat -ntlp |grep 3307|grep -v "grep 3307"|wc -l)
if [ $n -ne 0 ];then
  echo "server is already running!"
  exit 0
fi
mysqld_multi --defaults-extra-file=/etc/my_3307.cnf --user=root start 3307
if [ $? -eq 0 ];then
 echo "service mysql_3307 start successful "
else
 echo "service mysql_3307 start fail"
fi
}

stop(){
n=$(netstat -ntlp |grep 3307|grep -v "grep 3307"|wc -l)
if [ $n -eq 0 ];then
  echo "server is not running!"
fi
mysqld_multi --defaults-extra-file=/etc/my_3307.cnf --user=root stop 3307
if [ $? -eq 0 ];then
 echo "service mysql_3307 stop successful "
else
 echo "service mysql_3307 stop fail"
fi
}

status(){
ps -ef |grep 3307|grep -v "grep 3307"
}

case $1 in
start)
 start
;;
stop)
 stop
;;
status)
 status
;;
*)
echo ‘service accept arguments start|stop|status‘
esac
时间: 2024-10-14 05:35:57

Linux service管理自定义脚本的相关文章

Linux crond任务调度 磁盘分区和挂载 网络环境 进程管理 服务(service)管理 动态监控进程 rpm和yum

crond任务调度 1.基本语法 1.crontab [选项] -e : bianji crontab定时任务 -l : 查询crontab -r : 删除当前用户所有的crontab任务2.编辑模式:时间格式 命令或脚本路径 参数说明 示例: 例子: 每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下 具体实现步骤: 1.crontab -e 2.*/1 * * * * ls -l /etc >> /tmp/a.txt 3.保存退出 上述权限示例 Linux 磁盘分区.挂载

linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版本非常多,相关的编译器,解释器也有很多,很多还有最小系统,嵌入式系统等等.同一功能的软件如果只有编译好的软件包,在其它linux的平台上,可能并不能正常安装运行,在此情况下,源码包编译安装出现了.所以本文的重点是以nginx为例,给出源码包编译安装的详细过程,同时带你手工编写自动化运行脚本. 准备工

转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本

试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的gem包.Net::SSH相当于cmd,专门用于执行命令:Net::SCP专门用于传输文件.它们俩结合,可以做任何SSH client能做的事情. 安装: gem install net-ssh gem install net-scp 以下所有代码都引用这段代码 require 'net/ssh' r

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*

Python学习第六天----Linux内存管理、进程管理、RPM包安装管理及源码安装软件

Linux内存管理.进程管理.RPM包安装管理及源码安装软件 一.交换分区     交换分区其实就相当于Windows系统下的虚拟内存的概念,当物理内存不够用的时候,由操作系统将硬盘的一块区域划分出来作为内存使用.具体使用方法如下:      [[email protected] ~]# fdisk -l 磁盘 /dev/sdb:16.1 GB, 16106127360 字节,31457280 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):5

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

Linux学习笔记——Linux服务管理(十)

+++++++++++++++++++++++++ +++++Linux服务管理+++++++++++++++++++++++++++++++ 1. 服务简介与分类 服务启动与自启动的概念: 服务启动:就是在当前系统中让服务运行,并提供功能 服务自启动:自启动是指让服务在系统开机或重启之后,随着系统的启动而自动启动的服务 查询已安装的服务: RPM包安装的服务——命令 :chkconfig --list     #查看服务自启动状态,可以看到所有RPM包安装的服务 源码包安装的服务——查看服务安

Linux服务管理之httpd-2.4常用配置及phpMyAdmin、wordpress、Discuz安装

一.何为httpd httpd是Apache超文本传输协议(HTTP)服务器的主程序.被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池. Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中. 二.httpd-2.4较httpd-2.2 新特性: (1) MPM支持运行DSO机制:以

Linux下定时执行脚本(转自Decode360)

文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 QQ:150355677 MSN:[email protected]) 菜鸟表示不会写shell脚本,但还是能够看懂的,昨天因为传了太多数据,结果namenode进入了safe mode,然后小伙伴赶紧就暂停了每天早晨4点自动执行的数据合并压缩和传输的脚本,今天我自己准备改,才发现这篇博文. 先说说