linux自启动、定时启动脚本
linux开机自启动
想让一个程序、脚本开机自启动,可以在/etc/rc.d目录下面找到rc.local文件,编辑该文件,在尾部加上需要运行的命令即可。
如:
#cd /etc/rc.d
#sudo vim rc.local
我需要让服务器在开机时运行一个php程序(ZMQServer.php),就加上这样一句话。
#前面是php的绝对路径,后面的部分是需要运行的程序的绝对路径
/usr/local/bin/php /web/app/ZMQServer.php
这样就ok了。
linux定时启动脚本
以上运行的php脚本会因为程序上的不可预知的错误而报错停止,这样客户端就无法连接到服务器了,因此需要一个定时检测该程序是否存在进程中,如果不存在就要重启的脚本,并且让它定时启动进行检测。
1.第一步,需要看看进程里是否有这个程序运行,使用如下的命令
#ps aux | grep ZMQServer.php | grep -v grep
第一部分是显示出所有的进程信息。
第二部分是将前面的结果拿来正则ZMQServer.php,结果是必然有一条grep进程,如果有ZMQServer.php运行了,则有ZMQServer.php。
第三部分是将grep进程自身给屏蔽掉。最后的结果就是如果后台运行了ZMQServer.php则有结果,否则是空的结果。
2.不可能人工手动的使用这条命令检查是否进程在运行,所以将它写成一个脚本(/bin/isRun)封装起来。
#!/bin/sh
ret=`ps aux|grep ZMQServer.php|grep -v grep`
if [ -n "$ret" ]
then
echo "is running!";
echo &date "+%x %X----->ZMQServer.php is running"
else
/usr/local/bin/php /web/app/ZMQServer.php&
echo &date "+%x %X----->ZMQServer.php have restarted"
fi
这条脚本的作用显而易见,就是判断ZMQServer.php是否运行,如果运行了就将当前的时间与信息输出,如果没有运行就重启ZMQServer.php并输出信息。
3.做到这一步,已经算是半自动化了,为了能实现完全自动化,就得将上面的脚本放入自动运行的程序中。
定时执行的程序叫cron,先要检查下它是否在进程中运行了。
#ps aux | grep cron
如果没有运行可以通过下面的命令让它启动起来。
#cron停止
/etc/rc.d/init.d/crond stop
#cron启动
/etc/rc.d/init.d/crond start
在/etc下有一个crontab文件,该文件记录了一些定时启动的内容。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ # run-parts
* * * * root run-parts /etc/cron.hourly
* * * root run-parts /etc/cron.daily
* * root run-parts /etc/cron.weekly
* * root run-parts /etc/cron.monthly
*/ * * * * root /bin/isRun >> /web/log/zmqlog.txt >&
前面的5个*分别代表着
linux自启动、定时启动脚本的更多相关文章
- Linux下定时执行脚本(转自Decode360)
文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog 老师(业精于勤而荒于嬉 ...
- 实用脚本 2 -- Linux下定时执行脚本
今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...
- 每天一个linux命令--定时启动
1.设置启动的时间,输入crontab -e命令 设置一种编辑器,进入编辑界面,设置启动的时间为每5分钟启动一次wanghy.sh脚本 # m h dom mon dow command # */ * ...
- linux 的开机启动脚本顺序
linux 开机启动脚本顺序 linux 开机启动脚本顺序. 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,并且打开终端/etc/init.d ...
- linux系统初始化——启动脚本是如何工作的
启动脚本是如何工作的 Linux 使用的是基于 运行级(run-levels) 概念的称为 SysVinit 的专用启动工具.它在不同的系统上可能是完全不一样的,所以不能认为一个脚本在某个 Linux ...
- linux中tomcat启动脚本:关闭、发布、重启、测试是否成功
说明 在使用jenkins持续集成时,需要实现自动发布包到tomcat.该脚本实现了在jenkins将包发送到linux服务器上后的自动关闭.发布.启动.测试启动是否成功的过程 思路 该思路以tomc ...
- Linux上定时shell脚本
原文链接:http://www.92coder.com/9-Linux%E5%AE%9A%E6%97%B6shell%E8%84%9A%E6%9C%AC/#more 本文主要介绍在Linux系统上部署 ...
- windows和Linux下定时启动或关闭服务
http://blog.csdn.net/clare504/article/details/17410643 1.Windows下的定时启动程序可以采用系统的计划和任务,定时启动服务可以在计划任务中添 ...
- Linux创建Jenkins启动脚本以及开机启动服务
1.jenkins.sh #!/bin/bash ###主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限 JAVA_HOME=/usr/lib/jdk1.8.0 ...
随机推荐
- flink 根据时间消费kafka
经常遇到这样的场景,13点-14点的时候flink程序发生了故障,或者集群崩溃,导致实时程序挂掉1小时,程序恢复的时候想把程序倒回13点或者更前,重新消费kafka中的数据. 下面的代码就是根据指定时 ...
- AWT之—画图
package edu.ch4; import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.util.C ...
- 20155322 2017-2018-1《信息安全系统设计》第二周 课堂测试 Linux下C语言实现MYOD
20155322 2017-2018-1<信息安全系统设计>第二周 课堂测试 Linux下C语言实现MYOD [博客目录] 静态库测试 实现方法 相关资料 操作 动态库测试 实现方法 相关 ...
- 微信小程序标签页切换
WXML中: <view class="swiper-tab"> <view class="swiper-tab-list {{currentTab== ...
- 微信小程序点击事件
<---------------------------------------------------index文件夹:------------------------------------ ...
- OpenCV中Mat的属性
OpenCV中Mat的属性 最近在做一OpenCV的图像轮廓检验,但当用到霍夫变换时才发现对Mat的属性了解不足.Mat在OpenCV中的地位是及其重要的,因此有必要做一个总结. 大体上来说,Mat是 ...
- day4 边缘检测Canny
1.canny边缘检测 # coding=utf-8 import cv2 import numpy as np filename = 'woman.JPEG' #读入图像,以灰度格式 img = c ...
- 【LG4294】[WC2008]游览计划
[LG4294][WC2008]游览计划 题面 洛谷 bzoj 题解 斯坦纳树板子题. 斯坦纳树的总结先留个坑. 代码 #include <iostream> #include <c ...
- Zabbix学习之路(八)之自动化监控网络发现和主动注册
1.网络发现 分两步走:创建发现规则(rule)和执行的动作(Action)(1)创建发现规则"Configuration"-->"Create discover ...
- 一个经典的PHP加密解密算法authcode
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API ...