linux自启动、定时启动脚本
来源:互联网 发布:每天打卡的软件 编辑:程序博客网 时间:2024/05/17 03:27
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/shret=`ps aux|grep ZMQServer.php|grep -v grep`if [ -n "$ret" ]thenecho "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/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly*/1 * * * * root /bin/isRun >> /web/log/zmqlog.txt 2>&1
前面的5个*分别代表着
- linux自启动、定时启动脚本
- linux 自启动脚本
- Linux自启动脚本
- Linux定时执行脚本 AMS 每天自启动
- linux的自启动脚本
- linux开机自启动脚本
- Linux系统自启动脚本
- Python中如何实现脚本自启动与定时任务?
- linux下tomcat监控自启动脚本
- linux oracle 自启动脚本编写
- postgres 在linux 自启动启脚本
- scientific linux oracle11g 自启动脚本
- linux下添加oracle自启动脚本
- Linux下nginx的自启动脚本
- linux系统自启动脚本整理
- linux 随机自启动脚本详解
- suse linux添加开机自启动脚本
- linux基础--debian开机自启动脚本
- 用对象序列化与文件读写保存用户的设置
- Linux学习笔记1
- Linux学习笔记2
- IF与SWITCH
- Linux学习笔记3
- linux自启动、定时启动脚本
- linux学习笔记4
- shell下执行一条命令,怎么得到返回值
- PHP关于传众多参数还是传上下文对象的性能测试
- php奇葩错误:htmlspecialchars处理中文丢失
- Fragment的使用
- Android中res/layout文件夹里新建布局文件,R中不生成ID的奇葩错误
- Java 与 Mysql连接,并分页显示
- ViewPager、Fragment、Matrix综合使用实现Tab滑页效果