Linux关机时执行指定脚本功能实现
时间:2022-07-27
本文章向大家介绍Linux关机时执行指定脚本功能实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.关机时执行某个脚本的具体思路
(1)在文件夹/etc/init.d/下创建关机时需要执行的脚本file_name;
(2)分别在文件夹/etc/rc0.d/和/etc/rc6.d/下创建该该脚本文件的链接文件K07file_name:
sudo ln -s /etc/init.d/file_name /etc/rc0.d/K07file_name
sudo ln -s /etc/init.d/file_name /etc/rc6.d/K07file_name
(3)在文件夹/var/lock/subsys/下生成与file_name同名的文件
sudo mkdir -p /var/lock/subsys/
sudo touch /var/lock/subsys/file_name
说明:关键字K07仅需要在文件夹/etc/rc0.d/和/etc/rc6.d/内添加,在/etc/init.d/和 /var/lock/subsys/里面不需要添加。
2.举例—在Linux关机时执行脚本snaking616
脚本snaking616内容如下:
#!/bin/bash
cd /etc/init.d
echo "admin"|sudo -S touch eth_set_100
echo "admin"|sudo -S chmod 777 eth_set_100
echo "#!/bin/bash
echo "admin"|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full" > eth_set_100
脚本在系统关机时会在文件夹/etc/init.d下自动生成脚本文件eth_set_100,并将以下内容写入该文件内:
#!/bin/bash
echo "admin"|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full
具体实现方法如下:
(1)打开终端创建脚本文件snaking616
sudo touch /etc/init.d/snaking616
sudo chmod 777 /etc/init.d/snaking616
sudo gedit /etc/init.d/snaking616
填写以下代码:
#!/bin/bash
cd /etc/init.d
echo "admin"|sudo -S touch eth_set_100
echo "admin"|sudo -S chmod 777 eth_set_100
echo "#!/bin/bash
echo "admin"|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full" > eth_set_100
(2)创建连接文件
sudo ln -s /etc/init.d/snaking616 /etc/rc0.d/K07snaking616
sudo ln -s /etc/init.d/snaking616 /etc/rc6.d/K07snaking616
(3)在文件夹/var/lock/subsys/下生成与snaking616同名的文件
sudo mkdir -p /var/lock/subsys/
sudo touch /var/lock/subsys/snaking616
当系统关机时间,在文件夹/etc/init.d下,会自动生成脚本文件eth_set_100。
- PHP 安全与性能
- Linux 系统与数据库安全
- 运维必备技能 WEB 日志分析
- Elasticsearch 一键安装含中文分词
- Session 的 Cookie 域处理(多域名虚拟主机)
- ElasticSearch + Logstash + Kibana 日志采集
- ElasticSearch + Logstash + Kibana 一键安装
- Oracle 表空间管理
- 数据加密字段加密
- 《Netkiller Virtualization 手札》Docker 卷管理
- PHP高级编程之守护进程
- Spring boot with Docker
- Spring boot with Service
- Spring boot with PostgreSQL
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 推荐算法之: DeepFM及使用DeepCTR测试
- Cypress系列(61)- 断言最佳实践
- Cypress系列(62)- 改造 PageObject 模式
- CPU 执行程序的秘密,藏在了这 15 张图里
- Cypress系列(63)- 使用 Custom Commands
- Python字符串操作大全
- Cypress系列(64)- 数据驱动策略
- 别只会搜日志了,求你懂点原理吧
- Cypress系列(65)- 测试运行失败自动重试
- CentOS7下编译FFMPEG源代码
- Android 的 Presentation 双屏异显,遇到的问题总结
- 音视频相关开发库和资料
- Flink深入浅出: 应用部署与原理图解(v1.11)
- 用 Github Actions 在 K8S 中运行 CI 测试
- 线程池的拒绝策略