fedora20发布,不对rc.local支持,其实只是删除了rc.local文件,如果想在开机时能够运行自己写的脚本,只要新建rc.local文件就可以了,下面让我们来测试下吧:
环境:fedora20 GNOME桌面
1./etc/rc.local其实是/etc/rc.d/rc.local的软连接,那么:
vi /etc/rc.d/rc.local
1 #!/bin/bash 2 #this is a script foe nexus start,if the nexus is startting,return. 3 echo "nexus verify.." 4 testing8081=`(netstat -an|grep 8081)` 5 if [ "NULL$testing8081" = "NULL" ] ; then 6 echo "nuxus starting..." 7 /home/Jorcen/Environments/nexus/nexus-2.7.0-04/bin/nexus start 8 else 9 echo -n "nexus had started,do you need restart it?(Y/N):" 10 read verify 11 if [ "$verify" = "Y" ] ; then 12 /home/Jorcen/Environments/nexus/nexus-2.7.0-04/bin/nexus restart 13 echo "nexus restared.." 14 fi 15 fi
编 辑文件/lib/systemd/system /rc-local.service,将ConditionFilel***ecutable=/etc/rc.d/rc.local前面奖赏#号注释掉 及#ConditionFilel***ecutable=/etc/rc.d/rc.local
[root@localhost Jorcen]# vi /lib/systemd/system/rc-local.service # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # This unit gets pulled automatically into multi-user.target by # systemd-rc-local-generator if /etc/rc.d/rc.local is executable. [Unit] Description=/etc/rc.d/rc.local Compatibility #ConditionFileIsExecutable=/etc/rc.d/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.d/rc.local start TimeoutSec=0 RemainAfterExit=yes SysVStartPriority=99
step2
1 [root@localhost Jorcen]# chmod +x /etc/rc.d/rc.local 2 [root@localhost Jorcen]# ln -s /etc/rc.d/rc.local /etc/rc.local 3 [root@localhost Jorcen]# systemctl status rc-local.service 4 rc-local.service - /etc/rc.d/rc.local Compatibility 5 Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static) 6 Active: failed (Result: exit-code) since Sat 2014-03-08 00:14:13 CST; 2min 44s ago 7 Process: 2397 ExecStart=/etc/rc.d/rc.local start (code=exited, status=203/EXEC) 8 9 Mar 08 00:14:13 localhost.localdomain systemd[1]: Starting /etc/rc.d/rc.local... 10 Mar 08 00:14:13 localhost.localdomain systemd[1]: rc-local.service: control p... 11 Mar 08 00:14:13 localhost.localdomain systemd[1]: Failed to start /etc/rc.d/r... 12 Mar 08 00:14:13 localhost.localdomain systemd[1]: Unit rc-local.service enter... 13 [root@localhost Jorcen]# systemctl start rc-local.service 14 [root@localhost Jorcen]# systemctl status rc-local.service 15 rc-local.service - /etc/rc.d/rc.local Compatibility 16 Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static) 17 Active: active (running) since Sat 2014-03-08 00:17:26 CST; 27s ago 18 Process: 2481 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS) 19 Main PID: 2541 (wrapper) 20 CGroup: name=systemd:/system/rc-local.service 21 ├─2541 /home/Jorcen/Environments/nexus/nexus-2.7.0-04/bin/jsw/linux-x86-64/wrapper /home/Jorcen/Environments/nexus/nexus-2.7.0-04/bin/js... 22 └─2543 java -Djava.net.preferIPv4Stack=true -Dcom.sun.jndi.ldap.connect.pool.protocol=plain ssl -Djava.library.path=bin/jsw/lib -classpa... 23 24 Mar 08 00:17:26 localhost.localdomain systemd[1]: Starting /etc/rc.d/rc.local Compatibility... 25 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: nexus verify.. 26 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: nuxus starting... 27 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: **************************************** 28 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: WARNING - NOT RECOMMENDED TO RUN AS ROOT 29 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: **************************************** 30 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: Starting Nexus OSS... 31 Mar 08 00:17:26 localhost.localdomain rc.local[2481]: Removed stale pid file: /home/Jorcen/Environments/nexus/nexus-2.7.0-04/nexus.pid 32 Mar 08 00:17:26 localhost.localdomain systemd[1]: Started /etc/rc.d/rc.local Compatibility.
chmod +x /etc/rc.d/rc.local
ln -s /etc/rc.d/rc.local /etc/rc.local
2.查看rc-local.service
systemctl status rc-local.service
如果服务没有启动可以先启动下rc-local.service
3.启动rc-local.service
systemctl start rc-local.service
然后用第2点的命令查看服务状态,这里可能有的服务启动不起来,为什么:
解决:
编辑文件/lib/systemd/system /rc-local.service,将ConditionFilel***ecutable=/etc/rc.d/rc.local前面奖赏#号注释掉 及#ConditionFilel***ecutable=/etc/rc.d/rc.local
再次启动下rc-local.service并用systemctl status rc-local.service看看状态是不是已经启动起来了
4.重启机器
查看/root下是不是多了个文件test,说明我们的开机脚本已经运行了!