centos6 自启动任务
tag: init upstart centos6.x 自启动 initctl event
CentOS6开始转用Upstart代替以往的init.d/rcX.d的线性启动方式。
upstart的概念就不科普了,简单介绍下:
upstart可以在以下情况start\stop服务:
1.runlevel改变时
2.收到事件时
3.startup,shutdown
在这之前先介绍下initctl。initctl可以做什么?
man initctl 可以看到:管理员可以使用initctl对upstart init deamon进行操作。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[root@aaaaa ~]# initctl help Job commands: start Start job. stop Stop job. restart Restart job. reload Send HUP signal to job. status Query status of job. list List known jobs. Event commands: emit Emit an event. Other commands: reload-configuration Reload the configuration of the init daemon. version Request the version of the init daemon. log-priority Change the minimum priority of log messages from the init daemon usage Show job usage message if available. help display list of commands For more information on a command, try `initctl COMMAND --help'. |
我常用的主要是启动、停止、重启、list。
下面使用initctl list看看又哪些任务在运行。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@aaaa ~]# initctl list mcu start/running, process 1639 rc stop/waiting tty (/dev/tty3) start/running, process 3123 tty (/dev/tty2) start/running, process 3121 tty (/dev/tty6) start/running, process 3129 tty (/dev/tty5) start/running, process 3127 tty (/dev/tty4) start/running, process 3125 plymouth-shutdown stop/waiting control-alt-delete stop/waiting rcS-emergency stop/waiting readahead-collector stop/waiting kexec-disable stop/waiting quit-plymouth stop/waiting rcS stop/waiting prefdm start/running, process 3116 init-system-dbus stop/waiting readahead stop/waiting splash-manager stop/waiting start-ttys stop/waiting readahead-disable-services stop/waiting rcS-sulogin stop/waiting serial stop/waiting |
举个例子:mcu start/running, process 1639
可以看到mcu这个任务处于start并且running状态,并且进程号是1639.
那如何做一个自启动呢?了解完上面之后,下面就很简单了。
|
1
2
3
4
5
|
[root@aaaaa ~]# cd /etc/init [root@aaaaa init]# ls control-alt-delete.conf mcu.conf quit-plymouth.conf rcS-emergency.conf readahead.conf splash-manager.conf init-system-dbus.conf plymouth-shutdown.conf rc.conf rcS-sulogin.conf readahead-disable-services.conf start-ttys.conf kexec-disable.conf prefdm.conf rcS.conf readahead-collector.conf serial.conf tty.conf |
在/etc/init下可以看到有很多 .conf文件,每一个conf都是一个任务。
我们只要在这里添加一个conf,就可以注册一个任务。
下面的例子,我希望在runlevel为2345的时候,确保/tmp/test.sh一直在执行。
那么conf这样写:
|
1
2
3
4
5
6
7
|
[root@aaaaa init]# cat mcu.conf start on runlevel 2 start on runlevel 3 start on runlevel 4 start on runlevel 5 respawn exec /tmp/test.sh |
解释:
respawn 是让任务反复启动
exec可以用来执行文件,如果要在conf里面写脚本,可以使用script...end script格式,这里就不做举例了。
到这里,就已经写好了conf。你可以使用initctl reload-configuration来重新加载任务。然后在initctl list中查看任务,是否mcu已经添加进去了。
如果没有添加进去,请检查conf中是否有语法错误。
如果添加进去了,任务应该是stop的状态,那么可以使用initctl start mcu来启动任务。
但是这样似乎有点麻烦,就把以上的都做成一个脚本吧:
|
1
2
3
4
5
6
|
#!/bin/bash echo -e "start on runlevel 2\nstart on runlevel 3\nstart on runlevel 4\nstart on runlevel 5\nrespawn\nexec /tmp/test.sh" > /etc/init/mcu.conf initctl reload-configuration initctl list initctl start mcu |
执行脚本,就完成了添加conf和启动任务的操作。
以上只是一个简单的conf例子,如果想要在更多条件下启动、停止等等各种操作,可以参考man。
前面说到了initctl可以发送event,让任务启动,conf这样写:
|
1
2
3
4
|
start on evsolohac script echo “solohac~~~~~” >>/tmp/solohac.txt end script |
让这个任务启动的命令如下:
|
1
|
initctl emit evsolohac |
centos6 自启动任务的更多相关文章
- Java面试知识点1
typora-root-url: ......\Software\Typora\Picture Bean的作用域 在Spring的元素的scope属性设置bean的作用域,用来决定bean是单实例还是 ...
- Centos6.5 设置Tomcat8 service服务实现自启动和服务管理
Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...
- Linux相关问题-CentOS6.5 x64版本号下Tomcat无法自启动的解决的方法
前段时间使用阿里云server.使用的是Linux CentOS6.5系统,在搭建完Tomcat后发现,Tomcat无法自启动. 将启动tomcat的命令为tomcat_home/bin/startu ...
- CentOS6.x生产环境下一键安装mono+jexus的脚本,自启动,带服务,版本号自控
转自: http://linuxdot.net/bbsfile-3784 1.支持哪些个平台?答:暂时仅支持CentOS6.x平台,7.x未测试,欢迎测试并到群里反馈给我(昵称:无聊人士) 2.一键安 ...
- CentOS6.8下安装memcached并设置开机自启动
参考资料:http://www.cnblogs.com/handongyu/p/6419305.html http://coolnull.com/1986.html 一.安装libevent 首 ...
- CentOS6.8下安装redis并配置开机自启动
参考资料:http://www.bubuko.com/infodetail-1006383.html http://www.cnblogs.com/skyessay/p/6433349.html ...
- centos6.5_64bit-nginx开机自启动
Nginx 是一个很强大的高性能Web和反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动. 首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: ...
- tomcat在centos6+上的自启动脚本
#!/bin/bash # # tomcat startup script for the Tomcat server # # chkconfig: 345 80 20 # description: ...
- CentOS6设置开机自启动
1.把开机启动脚本(mysqld)copy到文件夹/etc/init.d 或 /etc/rc.d/init.d 中 2.将启动程序的命令添加到 /etc/rc.d/rc.local 文件中,比如: # ...
随机推荐
- math对象和date对象
math对象的函数方法,记住Math首字母要大写 console.log(Math.abs(-5)); //取绝对值 console.log(Math.ceil(1.1)); //向上取舍 conso ...
- 异常System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.
在用mvc 的AuthorizeAttribute做身份验证,重写HandleUnauthorizedRequest方法,在Application_Error方法里出现异常System.Web.Htt ...
- Retina CS强大漏洞检测工具
RetinaCS强大漏洞检测工具 Eeye数字安全公司成立于上世纪九十年代末期,它是世界领先的安全公司,它采用最新研究成果和创新技术来保证您的网络兄系统安全,并向您提供最强大的如下服务:全面的.漏洞评 ...
- solr5.5教程-solrconfig.xml,加载schema.xml
布署完成后,接下来要更深入的研究solr的原理和使用. 首先进入testcore这个文件夹下面,发现这个core的conf里并没有schema.xml.那么数据格式是在哪里定义的呢? 打开 solr_ ...
- PUTTY使用Ctrl+s僵死的问题
算是分享个小经验吧! 一直都是使用VM+PUTTY的方式调试Linux程序,有时候在Vi中编辑了程序,Windowns下旧习难改,顺手就Ctrl+s了,尽管我知道Vi的保存是:w. 很不幸这时的PUT ...
- box2d 遍历世界中 body 的方法
大家都知道,循环遍历有很多方法,在box2d中大家普遍使用while和for循环来遍历世界,那什么时候使用for,什么时候使用while呢? 当循环中不设计body删除的时候,使用for循环,即: C ...
- JavaScript计算日期间隔以及结果错误(少一天)的解决方法
下面的代码是之前从网上某个地方COPY下来的,之前一直用着,前段时间DateDiff()方法突然出问题了,输入两个日期2015-10-01 和 2015-10-02之后,计算出来的日期是0!如果只有几 ...
- Winform登录、控制软件只运行一次、回车登录
Winform登录对很多程序猿来说都有些困惑,登录进入主窗体后要销毁登录窗体,而不是隐藏哦,怎么实现呢? 先贴一段Program.cs的代码 static void Main() { Mutex mu ...
- Sql Server 常用的查询
基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 selec ...
- require.js js模块化方案
一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代 ...