linux开机自动执行脚本、运行程序

article/2025/9/8 10:34:28

文章目录

  • 用途、大致步骤
  • 一、创建脚本
    • 1、autoStart.sh 放到/etc/rc.d/init.d文件夹中、权限赋值777或者755都行
    • 2、other.sh可以放在系统中的任何位置、权限777或者755
  • 二、把autoStart.sh注册到开机启动里面
      • 1、autoStart.sh脚本放到/etc/rc.d/init.d文件夹中后执行命令;注意:先放脚本在执行命令
      • 2、执行完毕可执行下面命令查看是否添加上了
      • 3、重启系统,查看你自己的脚本是否被执行
  • 三、相关说明
    • 1、为什么要导入环境变量`source /etc/profile`
    • 2、切换到当前脚本路径`CURPATH=$(cd "$(dirname "$0")"; pwd) && cd $CURPATH`
    • 3、chkconfig命令
    • 4、取消注册开机自启
    • 5、推荐autoStart.sh中不要写过多的代码
  • 四、总结


用途、大致步骤

测试环境centos7

用途:linux开机自动执行脚本,启动java程序。
步骤:
1、在/etc/rc.d/init.d文件夹中创一个开机能够执行的脚本autoStart.sh
2、在autoStart.sh脚本中添加想要执行的代码或者调用自定义的脚本other.sh


一、创建脚本

1、autoStart.sh 放到/etc/rc.d/init.d文件夹中、权限赋值777或者755都行

#! /bin/sh
# chkconfig: 3456 99 10
# 手动加载环境变量信息
source /etc/profile# 这段做测试使用,开机启动后会在/root目录创建一个autostart.log文件,则证明生效了
echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/autostart.log
# 下面编写你需要执行的命令或者脚本
#sudo bash /opt/other.sh #我这里是调用其它地方的脚本,方便隔离开,后面有其它想开机自启的在这里加执行命令就可以了;
exit 0

autoStart.sh

2、other.sh可以放在系统中的任何位置、权限777或者755

这里面就是存放的你自己需要执行的代码了,下面只做示例使用,我的是放在/opt/目录下;

#! /bin/bash# 重要:切换到当前脚本的路径下
CURPATH=$(cd "$(dirname "$0")"; pwd) && cd  $CURPATH# 下面就是你自己需要执行的具体命令了:我的是启动java程序
# nohup java -jar  /opt/self-server.jar

二、把autoStart.sh注册到开机启动里面

1、autoStart.sh脚本放到/etc/rc.d/init.d文件夹中后执行命令;注意:先放脚本在执行命令

chkconfig --add autoStart.sh

2、执行完毕可执行下面命令查看是否添加上了

chkconfig --list

在这里插入图片描述

3、重启系统,查看你自己的脚本是否被执行

sudo reboot

三、相关说明

1、为什么要导入环境变量source /etc/profile

开始时候我并没有发现需要写这段代码,然后执行到other.sh脚本总是不成功,查看日志时候提示找不到java命令,正常情况下手动执行other.sh是没有任何问题的,但是自动启动时候就会提示找不到java命令,反正翻越了一些文章,大概说的是系统启动过程中执行先后顺序的问题,在执行autoStart.sh时候,环境变量还没有加载进来,所以在环境变量中配置的那些命令就可能使用不了,需要在执行代码前手动导入一下;
参考文章:linux 系统脚本 环境变量 的启动顺序

2、切换到当前脚本路径CURPATH=$(cd "$(dirname "$0")"; pwd) && cd $CURPATH

因为autoStart.sh是在/etc/rc.d/init.d目录下,如果是调用other.sh,那么other.sh的路径也变相于是在/etc/rc.d/init.d目录下,所以在other.sh中使用相对路径的话,会提示找不到各种文件、文件夹;

3、chkconfig命令

参考文章:Linux chkconfig命令

4、取消注册开机自启

chkconfig --del autoStart.sh

5、推荐autoStart.sh中不要写过多的代码

autoStart.sh里面推荐只写调用其它脚本的代码,这样的话便于维护,后续如果有其它需要开机自动执行或者想取消的,只需要在里面添加、删除调用命令就可以了,不需要再来搞一遍上述操作;

四、总结

1、打开冰箱;
2、把大象塞进去;


http://chatgpt.dhexx.cn/article/AYRpX7q4.shtml

相关文章

Jetson nano开机自启动程序

目录 前言1.介绍2.创建开机自启动程序2.1 创建一个bash文件2.2 创建一个service文件2.3 添加权限2.4 移动service文件2.5 启动服务2.6 停止/重启服务2.7 取消开机自启动服务 结语参考 前言 最近有个需求,需要在jetson nano开机自启动一个应用程序,最近看…

树莓派开机自动运行python程序的方法

方法一 添加程序到rc.local 里 添加到rc.local 里的py脚本文件将会在树莓派开机是自动运行,这种方式适合没有显示器,具体操作如下: 编辑文件 rc.localsudo nano /etc/rc.local添加命令来执行python程序,要使用文件的绝对路径。确保在exit 0…

linux_systemd启动方式解析,如何开机自动登录,开机自动运行程序

楼主使用的是天嵌的IMX6Q。 最新的官方yocto,4.9_123编译出来的文件系统。 其启动方式是系统服务的方式,记录一下: 如何修改串口控制台自动登录,和开机自动运行程序 Linux系统的启动方式有点复杂,而且总是有需要优化的地方。传…

批处理+开机自动执行

一、 写批处理脚本请参考:批处理 二、 只需要将上面写的xxx.bat文件放到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp路径下,开机就会自动执行,执行你想要的开机设置或者打开一些软件

定时开机-开机自动运行程序-定时关机(windows 下)

前言 电脑长时间未关机第二天来就会完全卡死。将有规律、重复性动作自动化。 目录 一、设置定时开机 二、设置开机启动自定义应用 三、设置定时关机 一、设置定时开机 定时开机这个,可能需要看“硬件”,我能成功主要是因为我的BIOS上有定时开机这个选项&#xff…

Beaglebone Black——开机自动运行程序

上接《修改设备树文件》一文 现在每次开机都能看到/dev/rtc1了,那么我们还需要一个应用程序来把时间从RTC读取出来更新到系统中,然而通过linux系统自带的一个程序hwclock,我们就可以把RTC的时间更新到系统中来,不需要自己动手省了…

树莓派开机自动运行python程序的两种方式

本文以一个简单的python程序为例,介绍树莓派开机程序自启动的两种方式,以及其中可能遇到的问题。python程序myled.py如下,保存路径为/home/pi/myled.py。 import RPi.GPIO as GPIO import timeGPIO.setmode(GPIO.BOARD) GPIO.setup(35, GPIO…

最小Linux系统中如何实现开机自动运行程序(进程)

一、目标 将交叉编译生成的可执行文件,放到最小Linux系统中,然后实现板子开机后,最小Linux系统运行起来后,自动执行可执行文件,并将可执行文件进程挂到后台运行。 二、实现 1、生成目标可执行文件 例: …

计算机启动windows程序,win7系统开机自动运行程序怎么设置|win7电脑开机启动程序的方法...

一些程序在一开机的时候就会自动打开,这样就不需要自己去打开了。那么win7开机自动运行程序怎么设置?下面就跟大家说说具体的设置步骤。 win7电脑开机启动程序的方法: 一、软件自带法: 大多数软件都提供开机自启动的功能&#xff…

Ubuntu添加开机自动运行程序

ubuntu下有很多中开机自动运行程序的方法,在开机的不同过程中可以启动不同的程序.如在开机启动时自动运行程序,是通过修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如&#xff…

树莓派Pico 开机自动运行程序

用Thonny编写的程序通过MicroPython运行后再重新上电程序不运行,需再次在Thonny内点击运行按钮才行。 以下步骤开机可自动运行: 程序必须保存在树莓派内部空间(另存时如串口正常会出现保存本机还是pico的选项,如图)。注意&#…

嵌入式Linux设置开机自动运行程序(基于BusyBox init)

文章目录 目的BusyBox init启动流程inittabrcS 和 rcK 设置开机自动运行程序总结 目的 开机自动运行程序,或者说系统启动时自动运行程序,这是经常会需要用到的功能。这个功能通常依托于 init 程序实现。 init 是Linux在内核启动完成之后第一个启动的程序…

Linux笔记:开机自动运行程序

文章目录 目的rc.localSysVinitSystemd在Systemd中实现rc.local注意事项SysVinit和Systemd的联系与区别总结 目的 开机自动运行程序,或者说系统启动时自动运行程序,这是经常会需要用到的功能。在linux中实现随系统启动运行程序的功能通常有三种&#xf…

Big-Endian Little-Endian

大端模式Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 小端模式Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 小端模式 :强制转换数据不需要调整字节内容。 大端模式 &a…

字节序:Big Endian 和 Little Endian

最近碰到了node.js中的buf.readUInt16LE(offset[, noAssert])方法: 根据指定的偏移量,使用特殊的 endian 字节序格式读取一个无符号 16 位整数。若参数 noAssert 为 true 将不会验证 offset 偏移量参数。 这意味着 offset 可能会超出 buffer 的末…

字节序——Big Endian和Little Endian

Big Endian和Little Endian 一、Endian 的起源二、字节序之 Little-Endian&Big-Endian三、为什么要注意字节序四、网络序和主机序五、Go 中的字节序 一、Endian 的起源 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通…

小端格式和大端格式(Little-EndianBig-Endian)

小端格式和大端格式(Little-Endian&Big-Endian) 1 字节序 字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序。 在几乎所有的机器上,多字节对象都被存储为连续的字节序列。 例如:如果C/C中的一个int型变量 a…

BIG-ENDIAN VS LITTLE-ENDIAN

1. 计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。 举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11。 字节序&…

什么是字节序? Big-Endian vs Little-Endian 举例说明

计算机只理解二进制。这意味着 0 和 1 构成了计算机使用的语言。 一位是 0 或 1 。8 位组成一个字节。从这些简单的部分,我们可以构建极其复杂的连接计算机系统来渲染视频、显示来自世界各地的文本并计算极其复杂的算法。 一些数据(一些英文字符&#…

java -- Big Endian and Little Endian 大端和小端概念讲解及如何转换

什么是大端、小端? 字节是计算机中数据处理的基本单位。 计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte8bit)。 计算机进行数据处理时,一次存取、加工和…