Upstart事件驱动的任务和服务引导方法简述

/*********************************************************************
 * Author  : Samson
 * Date    : 04/30/2014
 * Test platform:
 *              3.11.0-12-generic #19-Ubuntu
 *              GNU bash, version 4.2.45
 * *******************************************************************/

Upstart是一个基于事件的替代在引导过程中处理任务和服务的启动、停止、监督整个系统运行的/sbin/init守护进程的一个程序。

在Unix和Linux系统上的“初始化”或“系统初始化”过程中有进程ID(PID)为“1”。也就是说,它是启动在系统引导时(忽略的initrd/ initramfs)装载的第一道工序。根据官方说法,Upstart是一个替代传统的Unix的“System V”的“init”制度的“INIT”。Upstart提供与传统的“初始化”系统相同的功能,但超越了原有的许多方面。

若是采用了Upstart方式的系统在启动时,会去执行/etc/init/下的众多.conf文件,这此文件中包含的即是服务或任务的执行方式,这些文件中就使用了基于Upstart事件的方法,例如ssh.conf,这是启动ssh服务的Upstart事件的配置文件;具体说明如下:

# ssh - OpenBSD Secure Shell server

#

# The OpenSSH server provides secure shell access to the system.

description    "OpenSSH server"

#表示在登录界面执行的时候进行此服务(sshd)的启动

start on desktop-session-start

#下面这句的意义是当系统在2、3、4、5这四种启动模式下或文件系统事件信号的情况下

#start on filesystem or runlevel [2345]

stop on runlevel [!2345]

#当服务或程序为停止状态时,为了让服务有持续性,则需要进行重启此服务

respawn

#重生极限计数间隔|无限

#Syntax:

#respawn limit COUNT INTERVAL | unlimited

#以下语句的意义为:重启的最大次数为10次 每次间隔5秒

respawn limit 10 5

umask 022

# ‘sshd -D‘ leaks stderr and confuses things in conjunction with ‘console log‘

console none

#pre-start:

#Syntax:

#pre-start exec|script

#在进行任务之前进行预处理的块

#以下是判断sshd是否可执行 文件sshd_not_to_be_run是否存在等

pre-start script

test -x /usr/sbin/sshd || { stop; exit 0; }

test -e /etc/ssh/sshd_not_to_be_run && { stop; exit 0; }

test -c /dev/null || { stop; exit 0; }

#可以在这里打印执行的时间;

echo "`date` is start." > /home/wbc/sshdatatime.log

#修改sshd的权限

mkdir -p -m0755 /var/run/sshd

end script

# if you used to set SSHD_OPTS in /etc/default/ssh, you can change the

# ‘exec‘ line here instead

exec /usr/sbin/sshd -D

Upstart参考:

http://upstart.ubuntu.com/cookbook/#what-is-upstart

在重新启动系统后,服务启动的时间是启动了登录界面后的时间,而不是系统一启动就进行启动服务;

Upstart事件驱动的任务和服务引导方法简述,码迷,mamicode.com

时间: 2024-10-24 23:26:50

Upstart事件驱动的任务和服务引导方法简述的相关文章

WebService服务调用方法介绍

1 背景概述 由于在项目中需要多次调用webservice服务,本文主要总结了一下java调用WebService常见的6种方式,即:四种框架的五种调用方法以及使用AEAI ESB进行调用的方法. 2 预期读者 数通畅联内部员工 广大计算机爱好者 3 名词解释 Web Service也叫XML Web Service: WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是通过SOAP在Web上提供的软件服务,使用WSDL

[android] 代码注册广播接收者&利用广播调用服务的方法

利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent对象,通过new出来 调用Intent对象的setAction()方法,参数:一般就是包名 调用sendBroadcast(intebt)方法,发送广播,参数:Intent对象 服务里面 新建一个MyService类继承系统的Service类 添加一个自定义的服务的方法callServiceMeth

Linux Telnet 服务开启方法

一.检查是否有telnet chkconfig |grep telnet 二.开启telnet chkconfig telnet on 如果没有安装telnet 下载一个telnet-server.rpm rpm -ivh telnet-server.rpm cat /etc/xinetd.d/telnet chkconfig telnet on 不需要了就关闭 telnet服务 chkconfig telnet off Linux Telnet 服务开启方法,布布扣,bubuko.com

VMware Esxi5.1.0开启ssh服务的方法

由于一些原因需要SSH登录进Esxi 5.1.0主机内部修改一些配置,发现ESXI默认是关闭SSH的,以下是在Esxi 5.1.0主机开启SSH服务的方法,供大家和自己参考: 1.先使用Vsphere client登录ESXI: 2.选定你要修改的主机,然后选择"配置",在左边的菜单栏选择"安全配置文件",你可以看到很多服务: 3.然后在"安全配置文件"下的"服务"左边单击"属性": 4.在打开的"

ubuntu下开放ssh连接服务的方法

在ubuntu系统下安装ssh服务的方法,ssh分客户端openssh-client和openssh-server,若要在本机开放ssh服务,则要安装openssh-server. 说明:1.客户端ssh只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client) 2.若要在本机开放ssh服务,则要安装openssh-server sudo apt-get install openssh-server 然后,确

Centos 6&7下服务启动方法及添加到开机启动

在linux系统中,安装完一个软件或应用后,有时候需要手动启动该应用,也需要收到将该应用添加到开机启动项中,让其可以能够在linux一开机后就加载该应用 启动应用的方法 CentOS 6 : service SERVICE start|stop|restart|reload|status CentOS 7 : systemctl start|stop|restart|reload|status SERVICE 添加到开机启动项的方法 CentOS 6 : chkconfig SERVICE on

Windows Server 2003开机自动启动MySQL服务设置方法

Windows Server 2003开机自动启动MySQL服务设置方法 发布时间:2014-12-19 更新时间:2014-12-24 来源:网络 作者:eaglezhong 关键词: 2003 exe 开机 nbsp; 设置方法 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   每次开机我都要去点击mysqld-nt.exe执行文件才启动mysql,虽然将创建了mysqld-nt.exe快捷方式到桌面,但还

实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法

废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namespace WcfService1 { [ServiceContract] public interface IAddService { [OperationContract] [WebInvoke(Method="POST",RequestFormat=WebMessageFormat.Js

实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace WcfService1 { [ServiceContract] public interface IAddService { [OperationContract] [WebInvoke(Method="GET",RequestFormat=WebMessageFormat.Json, Resp