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,说明我们的开机脚本已经运行了!