怎样在Upstart机制下的系统中加入upstart事件型的任务

/*********************************************************************
 * Author  : Samson
 * Date    : 11/15/2014
 * Test platform:
 *              3.13.0-24-generic
 *              GNU bash, 4.3.11(1)-release
 * *******************************************************************/

如今LinuxMint採用的系统启动机制是基于ubuntu的upstart的,那么相相应的配置文件的文件夹为/etc/init,依据upstart的文档中所说,创建一个能够在命令行直接使用initctl emit eventname进行启动一个任务的配置文件,在/etc/init下创建文件mytestup.conf,内容例如以下:

start on mytestyy

task

exec /bin/date > /tmp/yygydjkthh



意思是说当event为mytestyy时,运行任务 /bin/date命令,把结果写入到/tmp/yygydjkthh文件里。



保存此文件后,要使其生效,能够又一次启动系统,或直接在命令行使用更新upstart配置文件的命令:

sudo initctl reload-configuration



再在命令行运行触发事件的命令:

sudo initctl emit mytestyy

就可以运行任务:mytestup,查看/tmp/yygydjkthh已经存在,表示运行任务成功;



upstart emit原理:

会先创建全部任务的一个关联表,当检測到有emit event的时候,进行匹配,若事件名一致,则运行对应的任务或服务;

Ref:http://upstart.ubuntu.com/cookbook/#event

上一篇:liunx必知必会(2)


下一篇:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection