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 ...
随机推荐
- 记账APP(4)
依旧是一个表格类型的增删改查,但是呢,在用节点做,有点懵,明天加油
- express-session deprecated undefined resave option; provide resave option app.js
nodejs使用express-session报错 代码如下 app.use(session({ secret: 'hubwiz app', //secret的值建议使用随机字符串 cookie: { ...
- DotNetty学习笔记
DotNetty项目本身的示例很容易运行起来,但是具体到真实的应用场景,还是需要进一步理解DotNetty的通道处理细节,这样才能够在实际项目应用中处理具体的问题. 简单的场景下会有以下几个问题,第一 ...
- 20155218 2006-2007-2 《Java程序设计》第3周学习总结
20155218 2006-2007-2 <Java程序设计>第3周学习总结 教材学习内容总结 ==使用在比较两个参考名称是否参考同一对象:equals()比较实质是否相同. 看见new关 ...
- XMAPP 的安装与配置
1.XMAPP简介 1.1.XAMPP(Apache+MySQL/MariaDB+PHP+Perl) 开头的X代表X-OS,代表可以在任何常见操作系统下使用,包括Windows.Mac.Linux ...
- 20155302杨效宸《Java程序设计》课程总结
20155302杨效宸<Java程序设计>课程总结 一.每周作业 第一周学习总结:http://www.cnblogs.com/STILLlover521/p/6457914.html 第 ...
- LVS入门篇(五)之LVS+Keepalived实战
一.实验架构和环境说明 (1)本次基于VMware Workstation搭建一个四台Linux(CentOS 7.4)系统所构成的一个服务器集群,其中两台负载均衡服务器(一台为主机,另一台为备机), ...
- 在docker中执行linux shell命令
在docker中执行shell命令,需要在命令前增加sh -c,例如: docker run ubuntu sh -c 'cat /data/a.txt > b.txt' 否则,指令无法被正常解 ...
- XAF-属性编辑器中的EditMask,DisplayFormat格式化字符串该如何设置
XAF项目中有个DisplayFormat和EditMask设置,其中: 任何地方看到的DisplayFormat都是用于显示时,即非修改状态的编辑器,显示值的格式. EditMask是指编辑时的格式 ...
- Qt-QML-Canvas写个小小的闹钟
先看下演示效果 大致过程 先绘制仪表盘,圆圈和刻度 剩下再绘制三个指针 最后在绘制上面的电子时钟 下面写源代码 import QtQuick 2.0 Rectangle { id:root ancho ...