debian 开机启动 运行命令或脚本文件(较详细)

2023-05-16

开机启动:
本文以leanote的开机启动和随身WiFi切换usb-otg并挂在U盘为例,内容比较详细,带命令内容和操作内容。
1、跳转到对应位置(/etc/init.d/)

cd /etc/init.d/

2、创建sh脚本(文本名.sh)(如果不存在会自动创建)

vim /etc/init.d/leanote.sh

3、在sh文件中输入一下内容

例1:

   #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:Leanote
    # Required-Start: $network $remote_fs $local_fs
    # Required-Stop: $network $remote_fs $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Leanote
    # Description: Leanote start
    ### END INIT INFO
    
    cd /home/www/leanote/bin/ 
    nohup bash run.sh &
    
    exit 0

例2:
用vim打开需要修改的脚本,其中/etc/init.d/是存放路径

  vim /etc/init.d/startmountusb.sh
    #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:startmountusb
    # Required-Start: $network $remote_fs $local_fs
    # Required-Stop: $network $remote_fs $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: startmount+usb
    # Description: start mount and usb
    ### END INIT INFO
    
    sleep 3
    systemctl stop docker
    sleep 3
    echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
    sleep 3
    mount /dev/sda1 /var/lib/docker
    sleep 5
    systemctl start docker
  
    exit 0

建议:分步且可能有延迟的操作,建议加上等待时间。

启动文件模板解释:

#!/bin/sh

### BEGIN INIT INFO
# Provides: [程序名称,唯一]
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: [启动项的简短说明]
# Description: [启动项的完整说明]
### END INIT INFO

[需要执行的命令]

exit 0

在这个模板中,Provides 是唯一的,也就是在所有的开机启动项中,Provides不能有任何同名冲突。Short-Description 和 Description 随心情写。
需要执行的命令,按照正常的Bash Shell书写方式书写即可。
友情提示:需要后台静默运行的程序,请使用 nohup [需要执行的命令] >/dev/null 2>&1 & 方式来启动!最后的 exit 0 请不要删除!这个是返回正常退出信号的一个传值!

附:
vim操作:
1)逗号是指先后操作
2)【】包含的是键盘按键[]包含的是输入的英文内容
①【esc】:返回,输入命令,退出编辑模式
②【i】:编辑
③【shift】+【ins】:粘贴(可能有别,具体以你用的ssh为准)
④【esc】,[:wq] :保存并退出,注意wq前面的冒号是英文版,且需要输入。
⑤【esc】,[:q]:退出,如果有改动,就不能用这个
⑥【esc】,[:q!]:退出且不保存,注意是不保存!不保存!不保存!结构是冒号+q+叹号,英文版

4、将刚才编辑好的sh文件加上可执行的属性(如果不加属性,启动脚本将无法运行):

chmod +x leanote.sh
结构为:  chmod+空格+[+x]+空格+脚本.sh

5、然后,将这个启动脚本加入开机启动项中:

update-rc.d leanote.sh defaults
结构为:update-rc.d+空格+脚本.sh+空格+defaults

6、然后重新启动系统,

reboot
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

debian 开机启动 运行命令或脚本文件(较详细) 的相关文章

  • 解决linux更新apt软件源时报出GPG错误

    今天给树莓派换源 爆出N个这错误 W GPG error http mirrors neusoft edu cn raspbian raspbian wheezy InRelease The following signatures cou
  • C语言状态机学习笔记一

    出处 xff1a http www cnblogs com tangerious p 4565833 html 状态机的好处不用多说 xff0c 自己百度去 xff0c 但传统的编程模式 xff0c 无论是C语言 xff0c 或是硬件FPG
  • 单片机课设-60秒倒计时器

    proteus单片机实现60秒倒计时器 项目要实现的60s秒表倒计时器 xff0c 用 AT89C51单片机的定时 计数器 T0 产生一秒的定时时间 xff0c 实现 59 到 0秒的循环显示的功能 具体要求 xff1a 1 xff09 按
  • 位运算的操作(加减乘除、负数、乘方、1的个数)

    一 位运算相关规律 43 口诀 c 43 43 中的位运算相关规律总结和口诀 二 加减乘除 int add int num1 int num2 int temp do temp 61 num1 num2 不进位相加 xff1a 异或 num
  • PgSQL upsert批量查询插入或更新(insert select/on conflict do update踩坑记录)

    PGSQL数据库中根据唯一索引判断存在不存在 xff0c 存在则更新 xff0c 不存在就新增 xff0c 可以参考下的sql xff0c 注意其中的item type item type id item group item group
  • 程序员必备的11个Github优质项目

    GitHub 不仅仅是一个版本控制服务 xff0c 它还是一个了不起的内容资源 xff0c 从免费的电子书和教程 xff0c 到面试准备材料和 34 了不起 34 的文章 xff0c 应有尽有 如果你是经常访问GitHub的开发者 xff0
  • spring为什么要使用三级缓存来解决循环依赖?

    不用三级缓存 xff0c 用二级缓存能不能解决循环依赖 这里我先说一下前面没提到的细节 xff0c 那就是通过ObjectFactory获取的Bean可能是两种类型 xff0c 第一种就是实例化阶段创建出来的对象 xff0c 还是一种就是实
  • nginx事件模块

    1 模块依赖 2 基础数据结构 2 1 ngx event t struct ngx event s void data unsigned write 1 unsigned accept 1 used to detect the stale
  • Object.create(null)与let o = {}区别

    在阅读 vue 源码中 xff0c 会看到使用Object create null 来创建不带有属性的对象 为什么不使用let o 61 呢 xff1f 因为使用let o 61 xff0c 对象o还是继承Object xff0c 会继承O
  • javascript之字符串

    replace replace pattern replacement 字段说明pattern字符串或者具有Symbol replace方法的对象replacement可以是字符串或者函数 字符串时 xff0c 会替换pattern匹配的子
  • win10重装遇到的问题

    今天在重装win10系统时遇到几个问题 xff0c 折腾了一整天 win10计算机意外地重新启动或遇到错误 解决方法 1 在出现错误提示的界面中我们按 Shift 43 F10 打开命令提示符 2 在命令提示符中输入 cd oobe xff
  • Arduino IDE搭建ESP8266开发环境,开发包下载过慢解决方法

    Arduino IDE搭建ESP8266开发环境 xff0c 开发板管理器中下载过慢解决方法 方法一 xff1a 1 首选项 附加开发板管理器网址 xff1a http arduino esp8266 com stable package
  • CheckBox的使用(一):onCheckedChanged事件

    重写接口 public void onCheckedChanged CompoundButton buttonView boolean isChecked package com example androidtest import and
  • 指针与引用的关系

    c xff0b xff0b 中的引用与指针的区别 相同点 xff1a 1 都是地址的概念 xff1b 指针指向一块内存 xff0c 它的内容是所指内存的地址 xff1b 引用是某块内存的别名 区别 xff1a 1 指针是一个实体 xff0c
  • C&C++图形图像处理开源库

    Google三维APIO3D O3D 是一个开源的 WebAPI 用来在浏览器上创建界面丰富的交互式的 3D 应用程序 这是一种基于网页的可控3D标准 此格式期望真正的基于浏览器 xff0c 独立于操作系统之外 xff0c 并且支持主流的3
  • protobuf的ParseFromArray 解析失败的问题

    前段时间 xff0c 在解析定义的Message时 xff0c 总是提示解析失败 xff0c 刚开始以为是消息号与消息没有对应上 xff0c 检查后发现消息号与消息是对应的 后来发现消息的一个字段定义为required 但是没有赋值 xff
  • Incorrect number of FETCH variables

    在写存储过程 xff0c 运行后提示 Incorrect number of FETCH variables 原来是用游标select的字段数需要与fetch into的变量数一致 修改后的如下 xff1a DROP PROCEDURE I
  • phpStorm 2016.1 最新版激活方法

    新版激活方法 1 在线激活 最新 http 123 206 193 241 1017 http www 0 php com 1017 xff08 可用 xff0c 更新于 20170621 xff09 http idea singee77
  • Android EditText最大字数限制并提示

    public class MaxTextLengthFilter implements InputFilter private int mMaxLength 构造方法中传入最多能输入的字数 public MaxTextLengthFilte
  • Android调用系统, 任意比例裁剪图片

    废话不多说 直接上代码 核心代码 span class hljs javadoc 跳转到系统裁剪图片页面 span class hljs javadoctag 64 param span imagePath 需要裁剪的图片路径 span s

随机推荐