Fedora 22(15以上版本)开机自启动脚本

  前段时间做了一个网站btdog磁力btdog电视直播。DHT爬虫需要消耗比较多的资源,原来的服务器不够用了,于是自己使用电脑搭了一台服务器,使用Fedora22系统。在Fedora22中自动写了些开机自启动脚本,但始终找不到放在哪里。折腾了下,发现原来Fedora 从15开始,系统初始化软件开始由initscript转向了systemd方式,原来要写开机启动脚本一般写在rc.local里面,但现在rc.local已经不存在了,不过systemd仍然有rc-local服务。

  编辑/usr/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

  可见我们只要新建文件/etc/rc.d/rc.local 然后加入自己的脚本就可以了

  新建rc.local  

touch /etc/rc.d/rc.local

  vim /etc/rc.d/rc.local

#!/bin/bash
#下面是你需要执行的脚本

#####################################

  赋以可执行权限

chmod +x /etc/rc.d/rc.local

  然后使用systemd开机自启动

systemctl enable rc-local.service

  提示错误如下: 

The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit‘s
   .wants/ or .requires/ directory.
2) A unit‘s purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).

  这个时候,我们需要在/usr/lib/systemd/system/rc-local.service 中加入[Install]区域,用于告诉systemd需要在多用户启动时还是图形启动时自启动这个脚本

  编辑/usr/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

[Install]
WantedBy=multi-user.target

  好了,然后在使用systemd开机自启动

systemctl enable rc-local.service 

  然后查看启动状态

#systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; enabled; vendor preset: disabled)
   Active: active (exited) since 一 2015-06-22 20:23:23 CST; 28min ago

6月 22 20:23:23 btdog systemd[1]: Starting /etc/rc.d/rc.local Compatibility...
6月 22 20:23:23 btdog rc.local[3973]: /etc/rc.d/rc.local:行4: [Install]: 未找到命令
6月 22 20:23:23 btdog systemd[1]: Started /etc/rc.d/rc.local Compatibility.
6月 22 20:27:28 btdog systemd[1]: Started /etc/rc.d/rc.local Compatibility.
6月 22 20:37:05 btdog systemd[1]: [/usr/lib/systemd/system/rc-local.service:20] Support for option SysVStartPriority=...ignored
Hint: Some lines were ellipsized, use -l to show in full.

  启动成功~~

时间: 2024-10-26 15:28:27

Fedora 22(15以上版本)开机自启动脚本的相关文章

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*

linux添加开机自启动脚本

一.在/etc/rc.local中添加 如果不想将脚本粘来粘去,或创建链接什么的, 则: step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行; step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行; 如: $ vim /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own in

Centos开机自启动脚本的制作

我的一个Centos开机自启动脚本的制作 一.切换到/etc/init.d/ 二.制作sh脚本 vi andy.sh [plain] #!/bin/sh #add for chkconfig #chkconfig: 2345 70 30 #description: the description of the shell   #关于脚本的简短描述 #processname: andyStart                    #第一个进程名,后边设置自启动的时候会用到 #下面要启动服务的命

Linux学习篇之---centos中的开机自启动脚本

centos中的开机自启动脚本 在cenos环境下,安装jdk,需要配置环境变量,网上有人说: 1.直接将语句写入/etc/profile中 2.将语句写入一个java.sh文件,然后将文件放到/etc/profile.d/目录下 现在看一下/etc/profile文件中内容: 其实这两种效果是一样的,/etc/profile文件执行的时候会遍历/etc/profile.d/目录下的所有*.sh文件,并依次执行. 但是个人认为还是使用后者比较好: 因为如果用得着,就新建一个.sh文件,如果用不着

linux实现开机自启动脚本

Linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after* all the other init scr

2分钟-实现开机nginx开机自启动脚本(shell篇)

如何快速写个启动脚本,主要通过如下几部 1,逻辑捋顺 可以在txt文件中,已伪代码的方式,形成体系,罗列顺序,然后在一点点补充代码 通过PID 进程文件,判断程序是否运行 设置3个模块(开启,关闭,重新加载) 然后在用case语句 去调用这个3个模块 实现启动脚本功能 restart看进程号变化,reload看配置文件是否生效 2,脚本主体内容 [[email protected]]# cat /etc/init.d/nginx #!/bin/bash # chkconfig: 2345 32 

ArchLinux For Arm 树莓派开机自启动脚本rc.local

今天折腾了下树莓派的迅雷固件,迅雷的安装很顺利,解压直接运行portal 就搞定了, 但是自启动就有问题了,由于新版的ArchLinux切换到systemd,不但rc.conf省了,连rc.local也没了,于是google了下,经过几次尝试,有了下面的确定可以启动的脚本 rc.local #!/bin/sh #touch /test #xunlei /xunlei/portal 上面的脚本里面指启动了迅雷,touch /test是我用来测试的,如果想知道脚本是否运行了,可以把注释去掉 接下来是

apache 开机自启动脚本设置

默认我们源码编译安装apache,是不能使用service这个命令来启动的,通常我们启动的命令是: [[email protected] httpd-2.2.16]# /usr/local/apache2/bin/apachectl start /usr/local/apache2/bin/中的apachectl其实就是一个启动脚本,我们把他copy到/etc/init.d/去,并且重命名为apache2(这个名字随便取,你自己方便就行)[[email protected] httpd-2.2.

在linux上添加开机自启动脚本的简单方法

我的电脑是联想B460,现在长期跑debian系统,但是触摸板实在是个令人抓狂的存在,每次开机都要手动FN+F6关闭,这实在太繁琐了,于是上网收到相关的信息: 终端输入如下命令可关闭触摸板: sudo modprobe -r psmouse 终端输入如下命令可打开触摸板: sudo modprobe psmouse 于是想到把这个命令写成一个小脚本,开机时自启动就可以了 由于要sudo,所以要输入密码,如果脚本自动输入密码就好了,于是搜索得到: echo "your passwd"|s