linux开机启动脚本

本文介绍两种在Linux系统中设置开机启动脚本的方法。第一种通过编辑/etc/rc.local文件实现,包括赋予执行权限、写入启动命令等步骤。第二种利用systemd服务,创建启动文件并启用服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


第一种:配置/etc/rc.local 大概分为5个步骤:

建议:先理解整个业务的完整流程,再去按照步骤做相应的操作,理解更深,不容易忘记

1.进入/etc目录,查找rc.local文件:

ll rc.*

在这里插入图片描述

2.给/etc/rc.d/rc.local 读写权限:

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

2.给/etc/rc.d

3.reboot重启linux:

此时开机时就会自动加载/etc/rc.d/rc.local 文件

4.写入执行脚本命令:

linux可以开机自动加载/etc/rc.d/rc.local后,将自动执行脚本的执行命令写入到rc.local文件
在这里插入图片描述

5.自动启动脚本代码:

注意:着重提示一下,代码中APP_NAME的名字一定要不常用,不能出现相似的。不然脚本就会有bug,经调试了很久,才发现这个问题

#!/bin/bash  
APP_NAME=minio-server
usage() {  
    echo "Usage: sh 脚本名称.sh [start|stop|restart|status]"  
    exit 1  
}  

process_exist(){  
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `  
  if [ -z "${pid}" ]; then  
   return 1  
  else  
    return 0  
  fi  
}  

start(){  
  process_exist  
  if [ $? -eq "0" ]; then  
    echo "${APP_NAME} is already running. pid=${pid} ."  
  else  
	nohup /home/minio/${APP_NAME} server /home/minio/data > /home/minio/data/minio.log 2>&1 &
    #BUILD_ID=dontKillMe nohup java -jar /home/sn_software/3I-tools.jar --spring.profiles.active=dev > ./deploy-sn-tool.log 2>&1 &  
    echo "${APP_NAME} started"
  fi  
}  

stop(){  
  process_exist  
  if [ $? -eq "0" ]; then  
    kill -9 $pid  
    echo "${APP_NAME} stoped"
  else  
    echo "${APP_NAME} is not running"  
  fi    
}  

status(){  
  process_exist  
  if [ $? -eq "0" ]; then  
    echo "${APP_NAME} is running. Pid is ${pid}"  
  else  
    echo "${APP_NAME} is NOT running."  
  fi  
}  

restart(){  
  stop  
  start  
}  

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

第二种:添加system启动文件

将启动脚本放在此目录 /etc/systemd/system 大概分为4个步骤:

建议:先理解整个业务的完整流程,再去按照步骤做相应的操作,理解更深,不容易忘记

1.进入/etc/systemd/system,创建应用脚本:

> cd /etc/systemd/system
> touch wms.service
> chmod 644 wms.service

2.复制脚本内容:

[Unit] 
Description=mes service
After=syslog.target network.target
 
[Service] 
Type=simple 
 
ExecStart=/usr/local/jdk1.8/bin/java -jar /home/mes/mes-service/mes.jar --spring.profiles.active=prod &
ExecStop=/bin/kill -15 $MAINPID 
 
User=root 
Group=root 
 
[Install] 
WantedBy=multi-user.target

3.添加为系统开机启动:

> systemctl daemon-reload
> systemctl enable mes

4.测试重启:reboot

<think>好的,我现在需要帮助用户解决在Rocky Linux 9.5上激活网卡的问题。用户提到了ifup和ifconfig命令,可能对网络配置不太熟悉,需要详细的步骤说明。 首先,我得确认Rocky Linux 9.5的网络管理工具。Rocky Linux基于RHEL,从RHEL 7开始就默认使用NetworkManager,但传统的network服务可能也存在。用户可能使用的是nmcli或传统的ifup/ifdown脚本。 接下来,激活网卡的方法可能有几种。使用nmcli命令是比较现代的方式,比如nmcli connection up。另外,传统的ifup命令可能仍然有效,但需要确认网络服务是否在运行。用户可能还提到了ifconfig,但注意ifconfig属于net-tools,可能未预装,需要安装。 然后,我需要分步骤说明每种方法,确保用户能理解不同选项。例如,使用nmcli需要知道连接名称,可以通过nmcli con show查看。同时,提醒用户检查网卡状态,用ip link查看接口是否处于DOWN状态。 还要注意配置文件的位置,/etc/sysconfig/network-scripts/可能已被弃用,但在某些情况下仍在使用。需要指出Rocky Linux 9可能使用ifcfg文件,但推荐使用nmcli进行配置。 另外,用户可能遇到网卡未托管的情况,需要检查NetworkManager.conf中的设置。防火墙或SELinux也可能影响网络激活,但可能性较低,可以作为问题排查步骤提及。 最后,生成相关问题时,要涵盖其他常见的网络配置任务,比如查看状态、设置开机启动、使用ip命令等,帮助用户扩展知识。</think>在Rocky Linux 9.5中激活网卡主要通过以下三种方法实现: ### 一、使用nmcli命令(推荐方式) 1. 查看当前网络连接状态 ```bash nmcli con show ``` 2. 激活指定网卡连接(如ens192) ```bash nmcli con up ens192 ``` 3. 若需要重启连接 ```bash nmcli con down ens192 && nmcli con up ens192 ``` 这是最推荐的网络管理方式,直接与NetworkManager交互[^1] ### 二、使用传统ifup命令 1. 确保network服务运行 ```bash systemctl status network ``` 2. 激活指定网卡 ```bash ifup ens192 ``` 注意:该方法依赖`/etc/sysconfig/network-scripts/ifcfg-ens192`配置文件的存在 ### 三、临时启用网卡(不推荐) 1. 安装net-tools(如未安装) ```bash dnf install net-tools -y ``` 2. 临时启用网卡 ```bash ifconfig ens192 up ``` 注意:该方法重启后失效,仅用于临时调试 **补充说明**: - 查看网卡接口名称:`ip link show` - 持久化配置需修改`/etc/sysconfig/network-scripts/ifcfg-ens192`,设置`ONBOOT=yes` - 新版Rocky Linux建议使用`nmcli`替代`ifconfig`进行配置[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值