`
memorymyann
  • 浏览: 266322 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux手动添加开机启动的服务

阅读更多

如果你只是想知道如何添加一个开机启动的服务时候,那建议你直接看本文第2部分,如果你想读的更流畅,那建议从头看起,如果你耐心不错,希望继续读的时候,就请读完本文。

 

第一部分,这里介绍一种最"原始的"(请原谅我这么称呼)的办法,当然它不一定是最好的,但肯定是有用的,而且对任何发行版,任何你想要加载的服务都是统一的。(不同的发行版可能有自己添加开机启动服务的办法,不同的软件也有自己添加到开机启动的办法)。这种办法缺点就是相对比较麻烦。

 

我们以自己的脚本为例。

步骤:

 

1.如果你看本文的目的是开机启动tomcat那么第一步你可以不用看了,当然希望你看下,肯定是有好处的。第一步是编写脚本,其实很多时候我们不用编写脚本,比如我们只是想开机启动tomcat(当然我们现在的办法对开机启动TOMCAT也是可行的),他的脚本已经写好了就是catalina.sh(可能会拼错了)。但任何脚本都必须遵守一种约定才能利用这种办法进行开机启动,约定就是:1.他必须是以  脚本名 start 这种带start方式启动, 2.他必须是以 脚本名 stop 这种方式终止。 很幸运catalina.sh遵循这种约定。(其实,第2条不必要遵守,因为我们开机启动的服务可能不需要停止,那你就不用遵守了,如果你开机启动的服务不需要启动,连第一条也不用遵守,当然这就没有意义了。当你需要从启服务时候,希望你遵守使用restart参数)。下面我编写了个简单的脚本,它遵守第一条:

[root@liumengli init.d]# cat tidus
#!/bin/sh

case "$1" in
start)
        /userful_shell/echo_data.sh &
;;
stop)
        echo >/userful_shell/data.txt
;;
esac

exit 0
如果要启动的脚本并不遵守这种标准,那么在在看过上面脚本后,这个问题应该不难解决。这个脚本是如果参数是start就后台启动/userful_shell/echo_data.sh,如果是stop就清空/userful_shell/data.txt文件。下面给出/userful_shell/echo_data.sh的内容

[root@liumengli init.d]# cat /userful_shell/echo_data.sh
#!/bin/sh

COUNT=1
while [ ${COUNT} -ge 0 ]
do
        echo "I love yuna" >> /userful_shell/data.txt
        sleep 10
done
exit 0
[root@liumengli init.d]#
不难理解,不多做解释了。

 

第2步:在编写完遵循规则的脚本后,最好把它放在/etc/init.d/目录下,当然这不是必需的,只是一种习惯。执行cat /etc/inittab,可以看到语句 id:5:initdefault: 中间的数字5可能不是一样,可能是3也可能是5,当然也有其它的可能。如果是5的话就进入/etc/rc5.d/目录下,如果是3就进入/etc/rc3.d目录,依次类推。

 

第3步,在进入到/etc/rcN.d目录后(N为非负整数),将你上面编号的脚本链接到这个目录,最好按照下面的格式

ln -s 你编写好的脚本的绝对路径 ./SNN后面的字符就随便 ,ln命令本身不难,但链接后到该目录下的名字有一定的约束,你执行ls -l观察该目录下其它的内容,你会发现他们都是链接,此外,他们都是以K或者S开头,然后紧接的是2位或者3位的整数最后再接的是一个名字。S开头表示在启动你的脚本时候将会以start为参数,如果是以K为开头则表示会以stop为参数(既KILL的意思),后面的数字则表示他会在什么时候运行,01会最先运行,紧接着是02,03,04以此类推,在正确的做完链接以后,从新启动你的系统就可以看到你要的服务已经被运行了,当然你的保证你以上的三个步骤都是正确的。

 

 

第2部分,更简单的办法:

 

至此你已经掌握了linux开机启动最复杂的办法了(不知道是不是之一,有点麻烦而且带点蠢的感觉,但他肯定是可以用的),还有更好的办法,你不妨执行下cat /etc/rc.local看看这个文件,不需要任何帮助手册和文档,看完这个文件后你就有更好的办法来添加一个开机启动的服务。

 

第3部分,更多的关于linux开机的内容

 

当你有更多耐心来读我这篇算是冗长的文章的下半段时候,你会掌握linux开机的更多内容。(当然我相信这些东西是有用的)。

 

执行cat /etc/inittab,你可以发现这么几句

id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

 

第一行就表示该系统启动后会在运行级别5下运行,而5模式下运行会对应l5:5:wait:/etc/rc.d/rc 5,既会启动所有rc5.d目录中的脚本,linux运行级别一共分为7种:

 

0启动停止整个系统

1单用户或管理模式

2多用户模式,部分网络服务启动。

3正常操作运行模式,启动所有的网络服务

4用户自定义模式,可以用该级别来定制所需要的运行服务

5某些unix操作系统变体将其作为缺省的x-windows模式,也有些把它作为系统维护模式

6重启动

 

笔者的默认模式是5(fedora系统),不同模式下区别就是各自启动的服务不同。启动服务最少的就是1,单用户模式(有点像windows下的修复模式),它仅仅包含了作为一个操作系统所必需启动的进程,这种启动模式作用就是在你的linux某些服务出问题而导致你无法启动的时候,例如你修改了x-windows某些文件出错了,你可以进单用户模式下修改这些文件,然后再进入相应的模式。如何进入单用户模式是个很简单的内容,大家可以查询相关的资料。

分享到:
评论
1 楼 qwe_rt 2010-12-05  
HI ,非常nice的文章,
在阅读过程中,我发现我的ubuntu10.10没有这个文件(/etc/inittab)。

相关推荐

    ARM Linux 程序开机自启动方法

    经常自己编写的应用程序,需要手动运行,本文档教你修改系统文件,让你的应用程序开机自启。

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

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

    LINUX安装与配置简明手册

    4.1.5 系统开机引导时可以使用的服务 35 4.1.6 安装多个操作系统 36 4.2 快速解决方案 36 4.2.1 确定哪些安装盘是必需的 36 4.2.2 制作一张Linux操作系统的安装引 导盘 37 4.2.3 下载最新的引导启动映像 37 4.2.4 ...

    linux安装与配置简明手册

    4.1.5 系统开机引导时可以使用的服务 35 4.1.6 安装多个操作系统 36 4.2 快速解决方案 36 4.2.1 确定哪些安装盘是必需的 36 4.2.2 制作一张Linux操作系统的安装引 导盘 37 4.2.3 下载最新的引导启动映像 37 ...

    EasyBCD(双系统引导修复工具) v2.2 中文版.zip

    由于工作或兴趣所致,你也许需要在一台电脑上安装多种操作系统,比如你想尝试新的Windows 8,但仍想保留稳定的Windows 7;用久了Windows,突然想感受一下ubuntu的华丽,当然,也只是感受...Win7修复添加XP启动项教程

    LINUX FTP设置方法

    #修改或加入内容user_list文件本身就有,如没有,请手动添加。 # userlist_enable=YES userlist_file=/etc/vsftpd/ user_list #重启服务 service vsftpd restart 20.4 ftp虚拟用户配置 虚拟帐户与samba中的...

    Linux命令笔记

    3.1:源码包安装服务的启动 3.2:源码包服务的自启动 3.3:让源码包服务被服务管理器命令识别 第七部分:启动管理 启动管理/CentOS 6.x启动管理 1:系统运行级别 1:运行级别(0~6,7个级别) 2:查看运行级别(runlevel...

    Ubuntu_10.04_安装手记

    手动添加第三方软件源方法 集中管理Ubuntu上的共享文件夹 分区查看与编辑工具、ntfs分区开机自动挂载配置工具 手动修改fstab样板 在文件浏览器使用地址栏 将窗口的最大化/最小化/关闭按钮改为右边 OpenOffice.org ...

    Linux-FTP配置说明及安装源文件

    #修改或加入内容user_list文件本身就有,如没有,请手动添加。 # userlist_enable=YES userlist_file=/etc/vsftpd/ user_list #重启服务 service vsftpd restart 20.4 ftp虚拟用户配置 虚拟帐户与samba中的虚拟帐户...

    linux vsftpd搭建步骤 亲测可用

    1、首先安装vsftpd,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on 2、基于虚拟用户配置,(所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS...

    xware-desktop_0.13.20141115_amd64.deb

    设置开机自动启动。 在文件->设置->启动与登录->xwared托管里选择由用户态systemd托管或者由用户态upstart托管,确定。 如果这两个选项都不能选,则选择简单的自动启动。 这样下次重启时,xwared会自动启动。 手动...

    nServer-v2.1023[FTP + MYSQL + HTTP + PHP(FCGI)]

    - 运行前先进行网络测试,防止开机网络服务启动慢导致启动失败 - 使用最新汉化版FileZilla Server - MySQL默认使用MYISAM引擎 2011年9月19日 - 更新Nginx版本到1.0.6 - 更新PHP版本到5.3.8 - 添加PHP5.3对应的Zend...

    PHP程序开发范例宝典III

    实例015 开机自动启动Apache服务 21 实例016 开机自动启动MySQL服务 22 实例017 Linux下发布“读者之家”网站 22 1.3 应用常用开发工具开发PHP程序 23 实例018 应用Dreamweaver开发PHP程序 24 实例019 ...

    adb1.0.26包含fastboot.exe

    (一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。) 停止 adb server 命令: adb kill-server 查看 adb 版本 命令: adb version 示例输出: Android Debug Bridge version ...

Global site tag (gtag.js) - Google Analytics