开机自启动文件/etc/rc.local的一件小事

好几天没有写博客了,现在也很晚了一直要求自己要早睡可是总也做不到。不扯了说一件今天碰到的一个小问题,可能对高手来说都不是问题但是对于我这种刚接触linux而且也没什么老师就靠自己学的还真的就没什么小问题。还真的整整弄了1个多小时。事情的背景是这样的我最近在研究服务器的实时数据备份inotify+rsync经过这段时间可以说基本搞定了,看到好多地方都在说用sersync好像更好一些就下了一个配置了一下感觉还真的非常方便在命令行都设置启动/home/oldboy/tools/GNU-Linux-x86/sersync2 -r -d -o /home/oldboy/tools/GNU-Linux-x86/confxml.xml之后测试都没问题之后我就直接把这个命令拷贝到了/etc/rc.local(先交代一下我的/etc/rc.local 文件的内容#!/bin/sh
#

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don‘t

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/rpcbind start
mount -t nfs 192.168.56.139:/data /nfs_192.168.56.139
#/home/oldboy/tools/GNU-Linux-x86/sersync2 -r -o /home/oldboy/tools/GNU-Linux-x86/confxml.xml
/bin/sersync2 -r -d -o /home/confxml.xml

)里边之后reboot在系统重新启动后在测试就不能同步了,不知道什么原因我的排错步骤是这样的:
第一步:我以为拷贝错了就把/etc/rc.local这里的拷贝在命令行上在测试就正常了证明没有拼写错误
第二步:我以为在/ect/rc.local中不能用太长的路径就这么操作的
ln -s /home/oldboy/tools/GNU-Linux-x86/sersync2 /bin/sersync2
ln -s /home/oldboy/tools/GNU-Linux-x86/confxml.xml /home/confxml.xml
在把/etc/rc.local中的内容改为sersync2 -r -d -o /home/confxml.xml
但还是失败了证明不是这个问题
第三部:我为了测试就在我的这条命令前后个加了一条就变成这样
/bin/touch /home/000
sersync2 -r -d -o /home/confxml.xml
/bin/touch /home/111
之后在重新启动发现在home目录下面没有000和111这两个文件证明都没有运行于是我就在看了上一条就是mount -t nfs 192.168.56.139:/data /nfs_192.168.56.139发现只要把这条注释掉那么就可以运行了证明这个/etc/rc.local不是没有运行我的配置文件,而是停止在了mount这里也就是说如果网络文件系统没有挂载上就一直等在那里因为我的网络文件系统的机器没开也就是说mount命令就能让系统的命令一直挂在那里后来我查了一下好像是说nfs系统默认挂载的是有个hard方式这个方式就是一直在那里尝试挂载所有后边的就不运行。
总结:
1、/etc/rc.local里边要运行的时候不是说你写了就肯定能运行它也其实就是一个运行的程序也很容易挂起来(就是停止在那里)
2、向mount这种(hard方式)东西最好是放在最后边这样就不影响其他的
我不知道说明白没有,反正我自己是有点感触。

还有一个问题如果把sersync的配置文件confxml.xml改的有语法错误了系统好像也是启动不了的,反正我改错了之后实验了一下就没能启动但是可以单用户模式进去之后把这个文件修复又恢复正常了。因为我改的时候多加了个逗号在重启就看那个启动界面就老停止在watch data:这个地方进度条也不往前走了所以我用单用户模式进去改了一下就可以了。(怀疑和这个有关系但是还不确定,反正大家改的时候尽量小心点吧)

原文地址:http://blog.51cto.com/13638458/2120470

时间: 2024-07-29 08:44:28

开机自启动文件/etc/rc.local的一件小事的相关文章

配置rc.local开机自启动文件的疑问

有时我们自己在/etc/rc.d/rc.local里面增加的随机器启动的脚本和指令总是不能自动加载和启动,,机器启动后手动执行脚本又能成功,经常被搞得晕头转向的.最近我经过1天的辛苦测试和查找资料,终于解决了这问题,解决方式如下,/etc/rc.d/rc.local文件的文件头是#!/bin/sh ,我们把这修改成#!/bin/sh -x,这样系统启动后就会把/etc/rc.d/rc.local里面的指令或脚本不能执行的日志写入/var/log/messages ,我们查看messages文件内

ubuntu 的开机自启动文件

在ubuntu系统中,开机前会先运行一个/etc/rc.loacl文件中的脚本,所以,如果想要在开机时做某些动作,可以把脚本写好放在这里 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error.

普通用户开机启动服务/etc/rc.local

/usr/bin/su  - cloud  -c   "/home/cloud/software/zookeeper-3.4.8/bin/zkServer.sh start" /usr/bin/su  的绝对路径 -  切换环境变量 cloud  切换的用户 -c  指定执行的命令 一般为启动服务的命令

windows 8/10 的开机自启动文件夹路径

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

zookeeper的开机自启动

zookeeper开机自启动 vim /etc/rc.local export JAVA_HOME=/usr/local/jdk #必须加,否则后面的java服务起不来/usr/local/zookeeper/bin/zkServer.sh start root外用户启动: export JAVA_HOME=/usr/local/jdk su -user -c '/usr/local/zookeeper/bin/zkServer.sh start'

树莓派实战3:配置开机自启动

接上 4. 配置开机自启动,修改rc.local 或者配置init.d ,这里修改rc.local sudo nano /etc/rc.local 如果你的mail.py在Desktop 则在exit 0上面一行添加 cd /home/pi/Desktop 然后 python mail.py 然后保存 退出 此时sudo reboot,等树莓派重新启动好了,你也会收到一封邮件 版权声明:本文为博主原创文章,未经博主允许不得转载.

centos7下的/etc/rc.local自启动程序

在centos6中有一个/etc/rc.local的启动文件,只要把需要经常启动的程序添加到此文件下并执行source /etc/rc.local就可以实现开机启动了. 在centos7中不知道也是如此操作吗? [[email protected] ~]# cat /etc/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own sy

CentOS系统编译安装服务如何添加开机自启动

今天在重启CentOS系统时,发现已设置开机自启动的服务并没有随开机自启动,于是查阅资料,定位原因,特更此文,以备查阅. 首先,之前的做法是将命令写入/etc/rc.local文件中,如下: vi /etc/rc.local #!/bin/bash #省略...... /date/server/bin/startup.sh    #tomcat 但是重启之后,Tomcat服务并没有启动.网上查阅资料,大部分说是执行权限问题,执行chmod +x /etc/rc.d/rc.local后,仍不能开机

oracle和tomcat的开机自启动

Oracle开机自动启动 当服务器关闭重启后,数据库以及tomcat程序需要自动启动 Oracle数据库自启动 Oracle数据库自带自启动脚本,稍作修改就可以使用 vim $ORACLE_HOME/bin/dbstart 找到ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME 保存退出 自启动oracle的监听程序 修改/etc/oratab文件,命令如下: vim/etc/oratab 找到zhy:/u01/app/oracl