您的位置:首页 > 运维架构 > Linux

linux后台运行和开机启动篇【二】

2015-10-29 11:26 627 查看
接上篇文章。

经常的,在linux中我们需要开机启动某些程序,比如oracle数据库,keepalived,或者防火墙。。。。

特别复杂的方法这里不做介绍,我写这篇文章的目的是能用最简单,最实用的方法去实现我需要的效果。结尾我提供一个资料,非常详细的讲解linux的开机启动机制。

 

linux的开机启动机制是非常特别的,对比windows的话,windwos的简直soeasy。

 

简单说,linux有三部分“自启动”:

/etc/profile:当用户登录后会被执行的脚本,是一个公共脚本,也就是任何用户登录后都会执行。

.bash_profile:每个用户自己的脚本,通常防止在$home下,当用户登录时,就会执行此用户对应的bash文件。

/etc/rc.d/init.d:这部分是真正的开机自起,也就是linux开机之后执行的脚本。如果我们需要开机启动jboss,相应的操作就要放在这里。

 

关于/etc/rc.d/init.d,init是所有进程之父,init读取/etc/inittab,执行rc.sysinit脚本。所有启动脚本放置在 /etc/rc.d/init.d下,这是linux比较复杂的开机启动机制,呵呵。

 

简单说,我们可以在/etc/rc.d/rc.local中放置我们需要启动后执行的命令,当然也可以是一个脚本,也就是说我们可以在rc.local中引入另一个脚本,这样就能实现开机启动。

而且,最重要的一点,rc.local是以root的权限执行的,所以我们可以加入任何操作。

例如有这样一个脚本/1.sh,我们可以把这个脚本中追加到rc.local中,直接在rc.local最后加入如下:

/1.sh

 

这样当linux启动后,就会以root权限执行/1.sh这个脚本。

说一点实用性的,oracle数据库安装完成之后,并不是开机启动的,那么如何达到开机启动的效果呢?

oracle的启动分为两部分,listener和数据库本身。在oracle的bin目录中,有两个文件lsnrctl和dbstart。他们可以启动oracle的listener和数据库本身。

 

启动listener:lsnrctl 
start

启动数据库:dbstart  start

 

然后我们需要在oracle用户下执行这两个命令,因此需要使用到su命令:

启动listener:su
- oracle -c "lsnrctl  start"

启动数据库:su - oracle -c "dbstart  start"

将正两句代码加入到rc.local中即可实现oracle的开机自启动。

 

再说说linux服务的开机自启动。

在linux比较高阶就是以服务形式存在的开机自起,例如iptables(防火墙)。

 

启动防火墙服务:service  iptables  start

或停止防火墙服务:service iptables  stop

这些服务可以轻而易举的设置为开机自启动,这里需要用到chkconfig命令。在root用户下:

chkconfig  iptables  on  #开机自己防火墙服务

chkconfig  iptaobes off  #开机不启动防火墙服务

 

keepalived服务本身的启动或停止及开机自启动的方法类似。

 

 

结尾附上linux开机自起详解及如何添加服务自定义服务的资料:

http://blog.csdn.net/wwwxxlby520/article/details/4374079
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: