/etc/rc.d/rc.local似乎是很多Linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc.local。

当然,绝大部分情况下,你会发现这一切都工作得很正常,看上去也很美好。不过,当你遇到了一些诡异的问题的时候,也许你应该好好的去看看/etc/rc.d/rc.local里都写了什么了?

虽然/etc/rc.d/rc.local 的描述是你可以把你需要的自动启动的程序放到这里,不过那仅仅只是限于没有别的地方可以放置了,或者说系统也没有提供其他办法了,我们才这么干,然而实际上,我碰到的很多/etc/rc.d/rc.local里放置的内容,其实系统提供了更好的处理方式:

1)Oracle等服务器的启动:如果你需要你的oracle可以随着系统一起启动,你可以去看看/etc/oratab这个文件,然后去了解它,你就会发现这里才是它正确的位置所在

2)静态路由: 对于需要增加大量的不是本网段的路由时,很多人喜欢在/etc/rc.d/rc.local里添加类似

route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.251

route add -host 192.168.100.1  gw 10.224.0.251

这样的语句,实际上,系统也提供了它正确放置的位置,只不过这个文件默认不会存在,你之需要看看/etc/init.d/network这个脚本就知道了,它除了会把网卡带起来以外,还会去检查是否存在/etc/sysconfig/static-routes文件,如果有,则添加这些文件里记录的静态路由,其格式很简单,比如上面的两条语句换成static-routes要求的格式就是:

any -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.254

any -host 192.168.100.1  gw  10.244.0.254

3)修改设备权限信息:对于有udev功能的核心来说,修改设备的属性,权限等,应该去找对应rules文件,在那些文件里去做对应的修改。

4 )  其他需要运行的程序:还是自己写一个简单的符合LSB标准的启动脚本吧,这样系统能够帮你正确的启动并且正确的停止改服务,特别是正确的停止服务,而不是由系统简单发出kill -9 的方式。

上述这样的做法,其主要的目的就是要能够让服务按照正确的顺序依照正确的方式启动和停止,这样能够给你消除一些隐藏的问题。

当然,如果你系统一直都是正常工作的,而且/etc/rc.d/rc.local也又大量的脚本行,那也许你还不能体会我为什么要说上面这些话了。

/etc/rc.d/rc.local linux启动自动开启某些服务(转)的更多相关文章

  1. 通过/etc/rc.local实现开机自动拉起服务

    添加服务到/etc/rc.local 如自动拉起apache服务: /etc/rc.local: #!/bin/sh # # This script will be executed *after* ...

  2. linux 启动自动运行

    开机启动时自动运行程序  Linux    1.加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc ...

  3. Linux启动流程和脚本服务-6

    授课笔记:----------------------------------- linux系统启动流程:一.初始化阶段:1.grub引导界面2.识别硬件3.初始化驱动 二.加载/etc/rc.d/r ...

  4. linux启动自动挂载分区和/etc/fstab简单修复

    让后加的分区能够启动时自动挂载,需要把配置写入文件 /etc/fstab vi /etc/fstab UUID=3f5859e0-592f-42cd-b533-570422fb85be   / ext ...

  5. linux启动时开启screen

    编辑/etc/rc.local 添加 su - ubuntu -c 'screen -dmS ss zserver -p /etc/config'

  6. CentOS6.5 开机启动自动运行redis服务

    [一].查找和设置自己的redis路径参数 环境变量 PATH=/usr/local/bin:/sbin/:/usr/bin:/bin 端口 REDISPORT=6379 文件位置 EXEC=/usr ...

  7. Linux启动与关闭WIndows服务记录

    启动: mono-service -l:/var/run/Myservice-lock.pid MyService.exe (这个-l参数一定要加上) 控制服务: 暂停: kill -USR1 `ca ...

  8. linux 启动weblogic的某服务报错

    问题如标题所示, 错误信息主要包括: weblogic.store.PersistentStoreException: [Store:280073]The file store"WLS_DI ...

  9. linux查看与开启sshd服务

    1.首先通过物理终端进入到linux上,手工检查ssh发现没运行/etc/init.d/sshd statussshd is stopped 手工启动服务,发现报告权限错误./etc/init.d/s ...

随机推荐

  1. 视觉SLAM漫淡

    视觉SLAM漫谈 1.    前言 开始做SLAM(机器人同时定位与建图)研究已经近一年了.从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解.然而越了解,越觉得这个方向难度很 ...

  2. 当singleton Bean依赖propotype Bean,可以使用在配置Bean添加look-method来解决

    在Spring里面,当一个singleton bean依赖一个prototype bean,因为singleton bean是单例的,因此prototype bean在singleton bean里面 ...

  3. scala的基础部分

    最近接触到spark,spark又是scala编写的,所以需要学习一下scala. scala是面向对象的,一切皆为对象, 数值,函数都是对象. println("Welcome to th ...

  4. impala不能查询hive中新增加的表问题

         使用Cloudera Manager部署安装的CDH和Impala,Hive中新增加的表,impala中查询不到,其原因是/etc/impala/conf下面没有hadoop和hive相关的 ...

  5. PHP-Yii框架下提交表单form防止csrf攻击

    解决办法: 在form标签下,写入一个隐藏的input控件 <form id="form_submit" action="http://v2admin.doneve ...

  6. struts2基础---->第一个Struts2程序

    学习struts2的第一个程序,这里只会涉及到简单的代码编写.有一个夜晚我烧毁了所有的记忆,从此我的梦就透明了:有一个早晨我扔掉了所有的昨天,从此我的脚步就轻盈了. Struts的项目

  7. JS-检测浏览器类型及版本

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. POJ 3461 Oulipo[附KMP算法详细流程讲解]

      E - Oulipo Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  9. @font-face 字体

    一.@font-face是CSS3中的一个模块,把自己定义的Web字体嵌入到你网页中 @font-face的语法规则 @font-face { font-family: <YourWebFont ...

  10. strace命令的使用

    author: headsen  chen date: 2018-08-28   21:25:48 跟踪一个命令的过程: [root@zabbix-test ~]# yum -y install st ...