linux upstart脚本,Ubuntu的初始化系统工具Upstart

一、简介

UpStart 基于事件机制,采用事件驱动机制也带来了一些其它有益的变化,比如加快了系统启动时间。采用这种事件驱动的模式,upstart 完美地解决了即插即用设备带来的新问题。

Ubuntu UpStart 是比sysvinit更快的系统,但是他兼容了sysvinit系统。主要的概念是 job 和 event,一个job就是sysvinit里面的一个脚本。

sysvinit 运行时是同步阻塞的。一个脚本运行的时候,后续脚本必须等待。这意味着所有的初始化步骤都是串行执行的,而实际上很多服务彼此并不相关,完全可以并行启动,从而减小系统的启动时间。

在 Linux 大量应用于服务器的时代,系统启动时间也许还不那么重要;然而对于桌面系统和便携式设备,启动时间的长短对用户体验影响很大。此外云计算等新的 Server 端技术也往往需要单个设备可以更加快速地启动。

假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新型 init 系统。

Ubuntu 15.04开始预设使用Systemd,但是可以在开机选项选择使用Systemd或Upstart,但是不可同時使用Sysvinit或Upstart并存。

二、详解

在/etc/init/目录下面,存放着各种各样的.conf文件,这些文件就是需要启动的服务进程的文件。系统会按照这些文件的内容,执行相应的内容。

编辑文件 vim /etc/init/mytest.conf

description "mytest"

author "bsspirit "

env var=bar

export var

start on startup

stop on shutdown

respawn

respawn limit 2 5

console output

pre-start script

logger "pre-start: before: var=$var"

var=pre-start

export var

logger "pre-start: after: var=$var"

end script

post-start script

logger "post-start: before: var=$var"

var=post-start

export var

logger "post-start: after: var=$var"

end script

script

logger "script: before: var=$var"

var=main

export var

sleep 60000

logger "script: after: var=$var"

end script

post-stop script

logger "post-stop: before: var=$var"

var=post-stop

export var

logger "post-stop: after: var=$var"

end script

三、使用

启动mytest任务

start mytest

查看日志跟踪运行状态

tail -f /var/log/syslog

查看mytest任务状态

status mytest

查看系统进程,因为在程序中用sleep停止,要通过sleep查询

ps -aux|grep sleep

杀掉sleep进程,mytest自动重启

停止mytest

stop mytest

通过命令传参数,启动mytest

start mytest var=conan

不同参数,再次启动mytest

start mytest var=bsspirit

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值