首页 > 系统相关 >linux中通过init.d下的服务脚本实现开机启动

linux中通过init.d下的服务脚本实现开机启动

时间:2024-04-12 11:45:18浏览次数:28  
标签:start FileBackup linux etc init rc 开机 chkconfig local

目录

一:创建脚本

服务脚本要包括start,stop,restart这些方法,示例FileBackup.sh

#!/bin/bash
### BEGIN INIT INFO
# Provides:          airven
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: FileBackup service
# Description:       FileBackup service
### END INIT INFO

workdir=$(cd $(dirname $0); pwd)
#filepath="/home/ldh/work_space/FileBackup/FileBackup.py"

scriptpath="/FileBackup.py"

filepath=$workdir$scriptpath

start(){
    echo $filepath

    ###输出到log文件中
    #nohup ./xxx.sh >/dev/null 2>log &
    nohup python3 $filepath >/dev/null 2>&1 &
    echo 'FileBackup service OK'
}


stop(){
    serverpid=`ps -aux|grep "$filepath"|grep -v grep|awk '{print $2}'`
    kill -9 $serverpid
    echo 'FileBackup stop OK'
}

restart(){
    stop
    echo 'FileBackup stop OK'
    start
    echo 'FileBackup service OK'
}

case $1 in
    "start")
    start
    ;;
    "stop")
    stop
    ;;
    "restart")
    restart
    ;;
    *)
    start
esac

创建完服务脚本后,给脚本添加执行权限并放到/etc/init.d目录下

chmod +x FileBackup.sh
cp FileBackup.sh /etc/init.d/FileBackup

二:通过/etc/rc.local 实现开机启动

或者/etc/rc.d/rc.local,在exit 0 之前添加需要执行的程序

vim /etc/rc.local
 
#!/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.
 
#
 
# In order to enable or disable this script just change the execution
 
# bits.
 
# By default this script does nothing.
 
/etc/init.d/FileBackup start
 
exit 0

说明:在一些linux发行版本中,例如ubuntu操作系统不存在 /etc/rc.local文件,则可以手动创建
然后执行以下命令:

chmod +x /etc/rc.local

systemctl is-enabled rc-local
systemctl enable rc-local
systemctl start rc-local.service
systemctl status rc-local.service

三:通过update-rc.d 实现开机启动

update-rc.d是一个Perl脚本,是用来自动升级System V类型初始化脚本,简单来说就是哪些东西是你想要在系统引导初始化的时候运行的,哪些是希望在关机或重启时候停止的,你都可以用它来设置。这些脚本的链接位于/etc/rcN.d/下(N代表0~6),对应脚本位于/etc/init.d/下,通过 update-rc.d 管理ubuntu开机启动

cd /etc/init.d/
sudo update-rc.d FileBackup.sh defaults 90

更多脚本

update-rc.d <serviceName> start <order> <runlevel> #设置启动项
update-rc.d <serviceName> stop <order> <runlevel>   #设置停止项 
update-rc.d <serviceName> defaults NN  #启动和关闭级别默认,顺序为指定值NN
update-rc.d -f <serviceName> remove #从所有的运行级别中删除指定的启动项
update-rc.d <serviceName> start|stop <order> <runlevels> #设置启动和停止可以写在一起

举例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
解析:
表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这三个运行级别中,第20个关闭apachectl。
这是合并起来的写法,注意它有2个点号,效果等于下面方法:update-rc.d apachectl defaults

说明:相关执行脚本需要有执行权限

chmod 755 xxxx.sh
#或者
chmod +x xxxx.sh

四:通过chkconfig实现开机启动

适用于yum,rqm安装的服务,一般在centos系统下用的较为普遍


chkconfig --add FileBackup

chkconfig --add serviceName  #添加一个服务到chkconfig的管理中 
chkconfig --del serviceName  #删除一个服务到chkconfig的管理中 
chkconfig serviceName on  #将一个服务添加开机自启动
chkconfig serviceName off #将一个服务取消开机自启动
chkconfig --list  #查看chkconfig管理的服务 
chkconfig --level 0126 servicename off #将一个服务设置为在特定的运行级别下禁用。
chkconfig --level 345 servicename on #将一个服务设置为在特定的运行级别下启用。
chkconfig --list servicename  #查看一个服务在各个运行级别下的启用状态。
chkconfig --help:#显示chkconfig命令的帮助信息

五:相关说明

位于/etc/init.d/目录下的脚本可以通过service命令来执行。具体来说:
使用service命令执行/etc/init.d/目录中的脚本:
例如,执行命令service yourservice start可以启动/etc/init.d/yourservice
同样,执行命令service yourservice start或service yourservice stop会分别启动或停止/etc/init.d/yourservice脚本

标签:start,FileBackup,linux,etc,init,rc,开机,chkconfig,local
From: https://www.cnblogs.com/airven/p/18130843

相关文章

  • 3568F-Linux-RT系统测试手册
     ......
  • Linux:hostname指令
    学习自:Linux命令-hostname—LZL在线工具1、用途显示和设置系统的主机名称。主机名称保存在环境变量HOSTNAME中。2、用法显示主机名:hostname[-vadfisy]重设主机名:hostname[-vadfisy][主机名]3、参数参数说明-vhostname的具体用法(相当于help模式)-a显示......
  • 3568F-Linux应用开发手册
       ......
  • Linux安装Nacos
    1,先安装jdk,nacos需要依赖于jdk2,官网前往GitHub下载安装包官网:https://nacos.io/zh-cn/官方文档:https://nacos.io/docs/v2/what-is-nacos/GitHub:https://github.com/alibaba/nacoscd/usr/localwgethttps://github.com/alibaba/nacos/releases/download/2.2.3/nacos-serve......
  • Linux,Ubuntu禁用ipv6 启用ipv6
    Linux,Ubuntu禁用ipv6启用ipv6禁用ipv6编辑/etc/sysctl.conf文件,在末尾添加以下三句net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.lo.disable_ipv6=1执行sudosysctl-p​​,会看到下面三句输出执行cat/proc/sys/net......
  • linux端口映射
    linux端口映射添加端口映射iptables-tnat-APREROUTING-ptcp--dport[外部端口]-jREDIRECT--to-ports[内部端口]删除端口映射iptables-tnat-DPREROUTING-ptcp--dport[外部端口]-jREDIRECT--to-ports[内部端口]解释命令和参数iptables-tnat-APRER......
  • linux检测远程服务器端口
    nc命令检测端口是否开放nc-zvIP端口-端口#比如检测192.168.3.34的22到100端口nc-zv192.168.3.3422-100#也可以指检测一个端口,比如192.168.3.34的22端口nc-zv192.168.3.3422nc是netcat工具的命令,是一个很好用的网络工具。比如,可以用来端口扫描,文件传输等......
  • Linux&Ubuntu之更换服务器
    前言更换网卡、主板上的板载网卡、主板是服务器硬件维护的常规操作。通常新换(板载)网卡的MAC地址会变更,而部分服务器更换主板也会导致板载网卡MAC地址变化。由于CAS(Ubuntu)系统会将新MAC地址的网卡视为新设备,在原有网卡配置文件(70-persistent-net.rules)的基础上增加新设备命名记录,......
  • linux 安装node
    安装参考地址:https://www.cnblogs.com/shining-feifan/p/17425518.htmlhttps://www.jianshu.com/p/900525215647 node官网下载地址https://registry.npmmirror.com/binary.html?path=node/latest-v14.x/ 一、下载安装包到本地1wget https://cdn.npmmirror.c......
  • Linux页框管理(一)高端内存.md
    名词解释虚拟页(VP,VirtualPage),虚拟空间中的页;物理页(PP,PhysicalPage),物理内存中的页;磁盘页(DP,DiskPage),磁盘中的页。linux中的分页(linux2.6.11)页全局目录(PGD,PageGlobalDirectory)页上级目录(PUD,PageUpperDirectory)页中间目录(PMD,PageMiddle......