<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[实践OK]解决linux下/etc/rc.local开机器不执行的原因。linux下rc.local中的服务开启失败分析~]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Wed, 17 Feb 2016 02:59:01 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：像webserver啥的开机启动其他程序的shell脚本，链接：https://jackxiang.com/post/7433/ 里写到：&nbsp;&nbsp;/etc/rc.d/rc.local ，而后做了软连接，/etc/rc.local -&gt; rc.d/rc.local，而这样久后，就以为写在/etc/rc.local就成了，导致开机还真没启动，得注意这个问题。<br/>方法一：<br/>直接建立新文件之后，建立软链接，source文件一定得放在/etc/rc.d里面。<br/>1)vi /etc/rc.d/rc.local <br/>2)ln&nbsp;&nbsp;软链接,ln [options] source dist, cd /etc ;ln -s&nbsp;&nbsp;rc.d/rc.local&nbsp;&nbsp;/etc/rc.local&nbsp;&nbsp;&nbsp;&nbsp;==&gt;形成： /etc/rc.local -&gt; rc.d/rc.local&nbsp;&nbsp; <br/><br/><br/>方法二：<br/>更标准一些，根据开机启动级别是3进行配置（/etc/rc.d/rc3.d 里面去指向/etc/rc.local也行，总之得有一个在/etc/rc.local里自启动才行)<br/>操作如下：<br/><textarea name="code" class="php" rows="15" cols="100">
ln -s /etc/rc.local S99local
S99local -&gt; /etc/rc.local
</textarea><br/>引用：<br/>到后来，有几台服务器突然被重启了，这时候领导问，怎么开机启动的脚本没起作用，还被批了一顿，哎，做事虎头蛇尾,活该！<br/>然后去查，一直没查到原因，<br/>手动执行都是正确的，在排除了权限原因和脚本问题后，很郁闷，怎么放到开机启动项目中就无法执行了呢。<br/>于是去查linux开机启动过程信息。google下，看了下关于一些开机启动启的资料，发现了开机启动程序的级别为3.<br/>果断顺藤莫瓜，找到了这个目录 /etc/rc.d/rc3.d，进去一看恍然大悟。<br/><br/>我的rc.local文件是在 /etc/rc.local中（网上都是说写在这里，我是按照网上来弄的），<br/>而我查看了系统指向rc.local文件的路径是 /etc/rc.d/rc.local，<br/>后来把开机启动的脚本配置到/etc/rc.d/rc.local中（或者把S99local指向 /etc/rc.local也行），重启检查，成功！<br/><br/>总结:主要还是对linux系统不熟悉，这是个漫长的过程，有时间得多看看这方面的书籍。<br/><br/>法二来自：http://www.cnblogs.com/montya/archive/2011/09/09/2172001.html<br/><br/><br/><br/>linux下rc.local中的服务开启失败分析:<br/>linux下可以在rc.local中设置开机启动任务。开机时，系统会根据 /etc/inittab中设置的运行级别，开启/etc/rc.d下相应的服务。如多用户启模式为3，则系统会开启/etc/rc.d/rc3.d/下的服务。<br/><br/>/etc/rc.d/rc3.d/的目录列表:<br/><br/>20140323164552<br/><br/>其中K表示需关闭的服务，S表示开启服务，后面的数据表示关闭或开启的顺序。/etc/rc.d/rc3.d/下的服务一般通过软连接，指向到/etc/init.d中。<br/><br/><br/>S99local一般会通过软链接指到/etc/rc.d/rc.local<br/><br/>ls -al /etc/rc.d/rc3.d/S99local<br/>lrwxrwxrwx. 1 root root 11 Dec 17 2012 /etc/rc.d/rc3.d/S99local -&gt;../rc.local<br/>ls -al /etc/rc.local<br/>lrwxrwxrwx. 1 root root 13 Dec 17 2012 /etc/rc.local -&gt; rc.d/rc.local<br/>ls -al /etc/rc.d/rc.local<br/>-rwxr-xr-x. 1 root root 149 Mar 21 13:17 /etc/rc.d/rc.local<br/><br/>如果在rc.local中添加了服务，但开机时未能所开启。则可以通过方排查:<br/>1. 根据运行级别查看rc.local文件链接指是否正确。<br/>2. rc.local文件有没执行限制，导致执行失败，给 chmod +x 给 rc.local添加执行权限。<br/>3. 查看/var/log/boot.log有没报错信息，是不是执行出错了, rc.local中的服务要写 sheel命令的绝对路径, 如Erlang服务，不能直接写 erl，需添加绝对路径/usr/local/bin/erl。<br/>4. 因为rc.local是等待 /etc/init.d的服务都开启后才执行的，所以如果/etc/init.d中的服务未开启完成，rc.local是不会执行的。如启动了firstboot服务，将会导致多用户模式下rc.local不能执行, 可通过 chkconfig –del 把 firstboot服务去除。服务开启时都会写启动日志，可通过/var/log/boot.log查看服务启动与否，再结合/etc/rc.d/rcx.d/下服务启动顺序排查哪些服务阻塞了。可结合 ps awux &#124; grep ServerName 一起排查。<br/><br/>From:http://www.kongqingquan.com/archives/152
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]解决linux下/etc/rc.local开机器不执行的原因。linux下rc.local中的服务开启失败分析~]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>