您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

如何在重启或启动时执行命令或脚本

时间:2020-06-20 16:58:59  来源:  作者:
如何在重启或启动时执行命令或脚本 | Linux 中国

 

有时你需要在启动时添加自定义脚本、命令或服务,该怎么做?

  • 来源:https://linux.cn/article-12279-1.html
  • 作者:Magesh Maruthamuthu
  • 译者:geekpi

众所周知 Linux 可以在启动时添加服务。例如,如果要在 启动时添加 Apache Httpd 服务,你可以在 chkconfig 和 systemctl 命令的帮助下完成此操作。

有时你需要在启动时添加自定义脚本、命令或服务,该怎么做?你可以使用以下三种方法来做到。

在本文中,我们将通过示例向你展示如何使用这些方法。

方法 1:如何使用 /etc/rc.d/rc.local 文件在重启或启动时运行脚本或命令

传统上,/etc/rc.local 文件是在切换到多用户运行级别的过程结束时,在所有正常的计算机服务启动之后执行的。

此方法也适用于 systemd 系统。

你需要将你的脚本位置添加到 /etc/rc.d/rc.local 文件中以在启动时运行。

确保该文件有运行权限:

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

作为演示,我们将创建一个简单的示例脚本。你可以根据需要创建任何脚本。

# vi /opt/scripts/run-script-on-boot.sh

#!/bin/bash
date > /root/on-boot-output.txt
hostname >> /root/on-boot-output.txt

脚本完成后,设置可执行权限:

# chmod +x /opt/scripts/run-script-on-boot.sh

最后,将该脚本添加到文件底部:

# vi /etc/rc.d/rc.local

/opt/scripts/run-script-on-boot.sh

重启系统 进行检查:

# reboot

方法 2:如何使用 crontab 在重启或启动时执行命令或脚本

cron 在特定时间在后台自动执行计划的作业。可以在 cron 任务 中使用特殊的字符串 @reboot 来完成。@reboot 是一个特殊的字符串,它允许用户在启动时运行任何命令或脚本。

此示例在系统重启时运行
/opt/scripts/run-script-on-boot.sh 文件。我们将使用与上面相同的脚本。

为此,只需在 crontab 文件中添加以下条目:

# crontab -e

@reboot /opt/scripts/run-script-on-boot.sh

重启系统进行检查:

# reboot

方法 3:如何使用 systemd 服务单元在重启或启动时运行命令或脚本

此方法仅适用于 systemd 系统。该方法非常简单。

我们将使用上面相同的脚本进行演示。

为此,你需要创建一个 systemd 启动脚本并将其放在 /etc/systemd/system/ 目录中。

这是我们的示例 systemd 启动单元脚本:

# vi sample-on-boot-script.service

[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/opt/scripts/run-script-on-boot.sh

[Install]
WantedBy=default.target

将单元脚本放置在 systemd 所在位置后,运行以下命令更新 systemd 配置文件并启用服务:

# systemctl daemon-reload
# systemctl enable sample-on-boot-script.service

重启系统进行检查:

# reboot

额外提示

如果你想在后台运行脚本,你需要在最后加上 & 符号

/Path/To/My_Script &

如果你想以不同用户运行命令,使用以下格式:

su - $USER -c /Path/To/My_Script

via: https://www.2daygeek.com/execute-run-linux-scripts-command-at-reboot-startup/

作者: Magesh Maruthamuthu 选题: lujun9972 译者: geekpi 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出



Tags:执行命令   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
现在是使用paramiko库远程登录到服务器执行命令但是要等命令执行完毕后才返回输出的结果,没办法实现在WEB端实时显示执行过程,有时候命令执行过程中卡着了,根本不知道是什么情...【详细内容】
2020-11-19  Tags: 执行命令  点击:(338)  评论:(0)  加入收藏
有时你需要在启动时添加自定义脚本、命令或服务,该怎么做? 来源:https://linux.cn/article-12279-1.html 作者:Magesh Maruthamuthu 译者:geekpi众所周知 Linux 可以在启动时添...【详细内容】
2020-06-20  Tags: 执行命令  点击:(146)  评论:(0)  加入收藏
在我们学习、工作中,常遇到需要使用Windows系统的电脑,来访问远程Linux系统进行相关部署操作,但远程Linux系统服务与本地Windows不在同一个局域网,而且Linux系统所在的外网IP是...【详细内容】
2020-04-07  Tags: 执行命令  点击:(61)  评论:(0)  加入收藏
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负...【详细内容】
2019-09-05  Tags: 执行命令  点击:(177)  评论:(0)  加入收藏
go语言用来执行一个系统的命令相对python来说还是有点复杂的,执行命令是一个非常常见的需求,如调用一个系统命令,启一个exe等,这里分为几种情况,之后统一总结一下。 只执行命令,...【详细内容】
2019-08-28  Tags: 执行命令  点击:(238)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条