详解如何在 Linux 启动时自动执行命令或脚本

发布时间 - 2026-01-11 00:18:25    点击率:

我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情。按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟。当你注销或者关机时,也是这样。

更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作。

本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法。

注意:我们假定使用的是 Bash 作为登录及注销的主 Shell。如果你使用的是其他 Shell,那么有些方法可能会无效。如果有其他的疑问,请参考对应的 Shell 文档。

在启动时执行 Linux 脚本

有两种传统的方法可以实现在启动时执行命令或脚本:

方法 #1 - 使用 cron 任务

除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持 @reboot 指令。这个指令后面的参数是脚本(启动时要执行的那个脚本)的绝对路径。

然而,这种方法需要注意两点:

a) cron 守护进程必须处于运行状态(通常情况下都会运行),同时

b) 脚本或 crontab 文件必须包含需要的环境变量(如果有的话,参考 StackOverflow 获取更多详细内容)。

方法 #2 - 使用 /etc/rc.d/rc.local

这个方法对于 systemd-based 发行版 Linux 同样有效。不过,使用这个方法,需要授予 /etc/rc.d/rc.local 文件执行权限:

# chmod +x /etc/rc.d/rc.local

然后在这个文件底部添加脚本。

下图说明如何分别使用 cron 任务和 rc.local 运行两个示例脚本(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。

script1.sh:

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt

script2.sh:

#!/bin/bash
SITE="Tecmint.com"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt


*启动时执行 Linux 脚本 *

记住,一定要提前给两个示例脚本授予执行权限:

$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh

在登录或注销时执行 Linux 脚本

要在登录或注销时执行脚本,分别需要使用 ~.bash_profile 和 ~.bash_logout 文件。多数情况下,后者需要手动创建。在每个文件的底部,添加调用脚本代码,如前面例中所示,就可以实现这个功能。

总结

本文主要介绍如何在启动、登录以及注销系统时执行脚本。如果你有其他的方法可以补充,请使用下面的评论表给我们指出,我们期待您的回应!也希望大家多多支持。


# linux自动执行命令  # linux执行脚本命令  # linux  # 启动自动执行  # Linux启动新进程的三种方法  # Linux启动新进程的几种方法及比较  # Linux开机启动过程详解  # Linux中设置Redis开机启动的方法  # Linux下重新启动Tomcat的步骤详解  # Linux下Tomcat启动正常  # 但浏览器无法访问的解决方法  # LINUX启动/重启/停上MYSQL的命令(详解)  # linux启动流程详细介绍  # 的是  # 启动时  # 其他的  # 您的  # 情况下  # 如果你  # 在这个  # 还可以  # 你就  # 当你  # 给我们  # 要在  # 你有  # 我一直  # 请使用  # 可以实现  # 所示  # 按下  # 有两种  # 后会 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android滚轮选择时间控件使用详解  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何在服务器上三步完成建站并提升流量?  个人网站制作流程图片大全,个人网站如何注销?  如何正确选择百度移动适配建站域名?  Laravel如何处理文件下载请求?(Response示例)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  JS经典正则表达式笔试题汇总  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  如何在腾讯云免费申请建站?  郑州企业网站制作公司,郑州招聘网站有哪些?  南京网站制作费用,南京远驱官方网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何确保FTP站点访问权限与数据传输安全?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Linux网络带宽限制_tc配置实践解析【教程】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何在景安云服务器上绑定域名并配置虚拟主机?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel怎么连接多个数据库_Laravel多数据库连接配置  浅谈javascript alert和confirm的美化  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  如何确认建站备案号应放置的具体位置?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  EditPlus中的正则表达式实战(5)  手机软键盘弹出时影响布局的解决方法  如何快速生成可下载的建站源码工具?  如何在云主机快速搭建网站站点?  如何安全更换建站之星模板并保留数据?  如何快速搭建高效可靠的建站解决方案?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  如何在万网自助建站中设置域名及备案?  zabbix利用python脚本发送报警邮件的方法  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何用西部建站助手快速创建专业网站?