linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本
今天看到一个脚本,可以完成脚本的启动/停止/重启/状态,和/etc/init.d中的服务一样。但是/etc/init.d里面的服务要设置开机启动,可以使用service来管理。如果不设置开机启动且方便管理,这个独立脚本就可以自由完成特定的动作。于是笔者将其简单改写后保存下来,用作操作脚本的一种方法,也可以利用crontab将其加入定时任务作为判断进程是否正常并重启。
脚本startup后面传递两个参数,需要操作的脚本名称$1和运行方式$2(start stop restart......)。
1、startup脚本#!/bin/bash
APP_NAME=$1
DIR_NAME=$HOME/shell/$APP_NAME
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh app_name [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef | grep $DIR_NAME | grep -v grep | grep -v $0 | awk '{print $2}'`
echo $pid
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup sh $DIR_NAME > /dev/null 2>&1 &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
sleep 5
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$2" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
restart
;;
exist)
is_exist
;;
*)
usage
;;
esac
脚本中pid=`ps -ef | grep $DIR_NAME | grep -v grep | grep -v $0 | awk '{print $2}'` 中grep -v $0直接将本程序start筛选掉。$0代表startup本身文件名。
2、放置于默认路径中
移动到默认路径/usr/local/bin中:mv startup /usr/local/bin ,这样就可以直接使用startup 而不加路径。
3、使用脚本
测试脚本testwhile.sh放置于/root/shell目录下:#!/bin/bash
echo "my while_prog:"
while true
do
echo "test mysh!"
sleep 2
done
startup testwhile.sh start 完成开启脚本
startup testwhile.sh stop 完成关闭脚本
startup testwhile.sh status完成查看脚本状态
startup testwhile.sh restart/reload 完成重启脚本
此脚本的意义在提供一种独立于/etc/init.d 的方法,当然也可以和/etc/init.d中的服务一样,虽不设置开机启动,也可以将运行的脚本做成服务放置于其中,使用/etc/init.d/testwhile.sh start 来完成启动任务。
linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本相关推荐
- win7oracle启动服务,如何快速启动/关闭Win7系统中的oracle服务
如何快速启动/关闭Win7系统中的oracle服务 在我们使用开发系统的时候,我们就需要使用到oracle数据库,在我们使用的Win7系统重装中都会有一个oracle服务,通常这个服务都是关闭的.如 ...
- Linux编辑启动停止重启springboot jar包脚本
springboot的配置文件中,配置文件的名字都有各自的意义跟用途 dev 开发环境 prod 生产环境(默认) test 测试环境 加载指定配置文件 --spring.profiles.activ ...
- Linux系统关闭nginx,linux下nginx启动、重启、关闭
方式一:传统方法 一.启动 cd usr/local/nginx/sbin ./nginx 二.重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径 或者使用 cd /usr/l ...
- Android程序暂停sh,init进程 解析Android启动脚本init.rc 修改它使不启动android init.rc中启动一个sh文件...
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径: system/core/init,编 ...
- linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
Linnux 中有些命令的功能非常强大,主要是因为它支持的命令选项比较多.如:[ip]命令可以配置IP地址.路由条目的配置管理操作非常完善,该命令就可以完成[ifconfig]和[route]命令实现 ...
- 启动关闭oracle命令,oracle启动关闭命令
关闭: 1.shutdown normal 不允许新的连接.等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. 2.shutdown transactional 不允许新的 ...
- linux oracle 关闭防火墙,Linux 下关闭防火墙设置
一.Linux下开启/关闭防火墙命令 1) 永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后 ...
- 阿帕奇退出java_java+tomcat+apache安装整合,启动/关闭,添加开机启动服务
安装java1.8 #yum update 服务器更新源码包 #rpm -qa |grep -E '^open[jre|jdk]|j[re|dk]' 搜索任何版本的已安装JDK组件 java- ...
- Shell脚本运行中的停止方法
Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理? 方式1 killall file-flume-kafka 说明:killall是一个命令,不是kill all,file-f ...
最新文章
- C# 各种进制之间相互转换 [ZT]
- HTSRealistic missions 10:Holy Word High School
- Tensorflow 2.1.0 中 keras.utils.plot_model()出错的解决方法
- 在流程梳理的过程中,OA工作组应采用国际先进方法
- nodejs-ORM 框架 waterline和Sails
- exchange无法收发邮件_MAPI session超过Exchange最大限制,邮件发送失败的终极解决方法...
- STM32-雨滴传感器
- 高级维修电工实训装置
- Tcl 语言——过程与字符串匹配篇
- 基于张量分解的药物重定位预测药物、靶点和疾病之间的关联
- 【C#.NET MVC】Deft框架简介与基本使用
- 古希腊神话故事:纳鲁斯和普鲁吐斯
- Android使用HereMap教程
- 360进攻搜狗后院!研发输入法 搜狗称无压力
- excel计算机基础知识考试题,2017年计算机excel基础考试题「附答案」
- IntelliJ IDEA 中设置左菜单字体, 编辑器字体和控制台的字体
- 用Python实现Word多文档合并
- podman加速配置、harbor镜像仓库部署
- 程序猿之间的鄙视链,你在第几层
- python由大到小排序_Python选择从小到大的排序,python
热门文章
- 尼康日本拟裁员约一千人 涉及半导体制造业务
- Discuz常见小问题-如何为每个板块设置不同的图标
- 【Todo】【读书笔记】Linux高性能服务器编程
- Mina的TCP的主要接口
- 寄存器间接寻址缺点_详解西门子间接寻址之地址寄存器间接寻址
- mysql dsec_MySql数据库操作命令
- Linux用户基础操作入门
- 在全员编程时代下,软件测试员又该何去何从?
- 计算机网络rip工作原理,12. 小型网络 RIP 协议工作原理
- LoadRunner踩坑记录:服务器“127.0.0.1”在尝试协商 SSL 会话时关闭连接