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 文件中,比如: # ...
随机推荐
- yii中modules的命名规则
如上图,views下面的文件夹名全小写(否则会出现找不到相应视图的错误),Module文件名称第一个单词首字母大写. 总之,按照上面的格式就不会有错了~
- ASP.NET MVC4 学习系统四(视图)
视图(Views) 在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结 ...
- 【Nginx 3】FTP远程文件下载
导读:在做项目的过程中,当用户发起申诉时,要上传一个申诉材料.然后后台运营人员在处理申诉时,可能会需要下载申诉材料,进行参考.本篇博客呢,就介绍一下文件的下载! 一.代码实现 <span sty ...
- RedHat安装VMwareTools出现解压压缩包时无法打开文件的现象
出现这种情况的原因是因为解压命令没有加—C参数,使用的命令为:tat -xvzf VMware Tools: 正确的解压命令应该是: tar -xvzf VMware Tools -C /opt,加上 ...
- Android IOS WebRTC 音视频开发总结(五五)-- 音视频通讯中的抗丢包与带宽自适应原理
本文主要分析webrtc中的抗丢包与带宽自适应原理,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 文章内容主要来自中国电信北京研究院丁博士在 ...
- 如何使VS2008 调试网站的根目录和IIS调试的一致?
用VS2008做asp.net网站调试时,经常会多出来一个目录,如http://localhost:1234/Foo/ , 由于一些图片的路径问题,我们不需要最后的/Foo/目录,而是像IIS调试那样 ...
- 必须会的SQL语句(四)删除和更新
1.删除 1)删除记录 Delete from 表名 where id ='xx' 2)删除所有数据,并回归初始化标识字段. Truncate table 表名 3)delete与 ...
- 理解inode
转载:阮一峰 http://www.ruanyifeng.com/blog/2011/12/inode.html 一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最 ...
- Linux下vi编辑器粘贴复制剪切功能
RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...
- ADO.NET(很精彩全面)
记录一下地址方便以后看http://www.cnblogs.com/liuhaorain/archive/2012/02/06/2340409.html