蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)

简介: 以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。

在Linux系统中,有多种方法可以在系统启动或重启时执行命令或脚本。以下是一些常见的方法:

  1. 使用crontab:Crontab是一个用于设置周期性被执行的任务的工具。在crontab中,有一个特殊的时间字符串 @reboot,它可以用来设置在系统启动时运行的任务。例如,如果你想在每次系统启动时运行 /home/user/myscript.sh,你可以在crontab文件中添加以下行:

    @reboot /home/user/myscript.sh
    

    你可以使用 crontab -e命令来编辑你的crontab文件。

  2. 使用systemd:Systemd是一个系统和服务管理器,用于Linux操作系统。你可以创建一个systemd服务文件,然后设置它在启动时运行。例如,你可以创建一个文件 /etc/systemd/system/myservice.service,内容如下:

    [Unit]
    Description=My Startup Script
    
    [Service]
    ExecStart=/home/user/myscript.sh
    
    [Install]
    WantedBy=multi-user.target
    

    然后,你可以使用以下命令来启动服务,并设置它在启动时运行:

    sudo systemctl start myservice
    sudo systemctl enable myservice
    

在Docker容器中,你可以在Dockerfile中使用 CMDENTRYPOINT指令来设置在容器启动时运行的命令或脚本。例如:

FROM ubuntu:18.04
COPY ./myscript.sh /myscript.sh
CMD ["/bin/bash", "/myscript.sh"]

在这个例子中,myscript.sh脚本会在容器启动时运行。注意,你需要确保你的脚本有执行权限,你可以在Dockerfile中使用 RUN chmod +x /myscript.sh来设置执行权限。

以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。

目录
相关文章
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
997 3
Linux系统禁用swap
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1598 3
|
11月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
955 124
|
11月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
522 146
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
1088 3
Linux系统初始化脚本
|
12月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
991 9
|
12月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
1040 2
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
754 18
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1220 1