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

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 以上就是在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容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。

目录
相关文章
|
7月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
815 124
|
7月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
425 146
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
783 3
Linux系统初始化脚本
|
10月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3312 75
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
732 9
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
746 2
|
11月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
1307 57
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1149 1
|
12月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
458 29
|
12月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
2111 30