IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux开机自动执行脚本、运行程序 -> 正文阅读

[系统运维]linux开机自动执行脚本、运行程序


用途、大致步骤

测试环境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: 345 99 10

case "$1" in
  start)
    # 这里放自定义执行脚本或者代码,推荐把需要执行的代码放到其它地方去,这里只做调用脚本的操作;
    # 这段做测试使用,开机启动后会在/root目录创建一个autostart.log文件,则证明生效了
    echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/autostart.log
    #sudo bash /opt/other.sh #我这里是调用其它地方的脚本,方便隔离开,后面有其它想开机自启的在这里加执行命令就可以了;
    # 这里放自定义执行的代码或者逻辑
    ;;
  *)
    ;;
esac
exit 0

autoStart.sh

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

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

#! /bin/bash
# 导入环境变量;注意:不能少、不能少、不能少
. /etc/profile
# 重要:切换到当前脚本的路径下
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、为什么要导入环境变量. /etc/profile

开始时候我并没有发现需要写这段代码,然后执行到other.sh脚本总是不成功,查看日志时候提示找不到java命令,正常情况下手动执行other.sh是没有任何问题的,但是自动启动时候就会提示找不到java命令,反正翻越了一些文章,大概说的是系统启动过程中执行先后顺序的问题,在执行autoStart.sh时候,环境变量还没有加载进来,所以在环境变量中配置的那些命令就可能使用不了,需要在执行代码前手动导入一下;
注意:. /etc/profile 符号/etc/profile之前是有个空格的,不要忽略或者删掉;
参考文章: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、把大象塞进去;

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:39:35  更:2022-10-31 12:41:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/19 9:30:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码