linux -- 启动时启动服务或者执行命令

运行等级

  首先,咱们须要知道Linux系统关于运行等级的知识。在不一样的linux系统上(例如ubuntu和Fedora)这些数字与和所表明的意义可能不一样,但主要的有如下几个:mysql

  1.  单用户模式。
  2.  多用户模式。
  3. 网络多用户模式。
  4. 用于特殊目的的预留
  5. 添加显示管理器到等级3

  所以,对于普通的运行等级,服务使用等级3,这时无论X11是否启动,服务将自动启动。linux

 

服务,守护进程,服务器

  在Ubuntu中,可使用sys-rc-conf命令简单的选择须要启动的已安装服务。redis

  在Fedora下,可使用chkconfig达到一样的目的。sql

 

自定义脚本与应用

  固然也有其它的方法配置系统启动时须要自动运行的服务与应用程序。在/etc/rcX.d(X表示运行等级)目录下,有许多须要运行在每一个等级下的命令/脚本/应用。能够把具备某种目的(维护/挂载文件系统等)的脚本连接到这个目录下,脚本就会在系统启动时执行。ubuntu

  建立链接时,须要注意命名格式:Sxx或者Syy(xx和yy使用数字代替,例如K36mysqld和S64mysqld)。这些命令将根据数字的大小依次执行,字母S与K是告诉系统这是个启动或者结束命令(S->Start, K->Kill)。就是说,在选择中运行等级下,系统启时执行S开头的链接,关闭时执行K开头的连接。服务器

例如:网络

$ ls /etc/rc0.d/ -ano
total 8
drwxr-xr-x.  2 0 4096 Apr  4 21:47 .
drwxr-xr-x. 10 0 4096 Mar 26 22:55 ..
lrwxrwxrwx.  1 0   22 Dec 12 08:48 K01livesys-late -> ../init.d/livesys-late
lrwxrwxrwx.  1 0   20 Dec 12 08:12 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx.  1 0   15 Apr  4 20:36 K80redis -> ../init.d/redis
lrwxrwxrwx.  1 0   17 Apr  4 21:47 K90network -> ../init.d/network
lrwxrwxrwx.  1 0   17 Dec 12 08:48 K99livesys -> ../init.d/livesys

 

 

另外一种方法:

  能够在/etc/rc.local文件中加入须要执行的命令,当系统启动完成时,这些命令将被执行。spa

  就是说,这些命令将在运行等级3后被执行,MySql, Apache等服务后启动完后运行。尽管这是一种简单的方案,但我仍是推荐使用上一种方案,由于上一方案能够彻底控制执行哪此命令,以及执行的时间和位置。固然这可能须要你有对Linux系统环境很好的了解。code

 

引用blog

  1. Start a service or execute a script on boot on Ubuntu/Fedora
相关文章
相关标签/搜索