DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

原文网址:Ubuntu20.04--开机自动运行脚本(命令)--方法/实例_IT利刃出鞘的博客-CSDN博客

简介

        本文介绍Ubuntu20.04如何开机自动运行命令。(也适用于Ubuntu22.04版本)

新版本方案(20.04版本及之后)

1.创建rc-local.service文件

sudo cp /lib/systemd/system/rc-local.service /etc/systemd/system
 

然后修改/etc/systemd/system/rc-local.service,在文件最下方添加如下两行:

 
 
[Install]
 
WantedBy=multi-user.target
 
Alias=rc-local.service
 
 

2.创建rc.local文件

创建/etc/rc.local,里边写自己想要运行的命令。例:

 
 
#!/bin/sh
 
 
 
echo "This is test" > /tmp/my.log
 
 
 
exit 0
 
 

/etc/rc.local加上可执行权限 

sudo chmod +x /etc/rc.local
 

3.测试

重启虚拟机

启动后可以发现:/tmp下已经有了my.log文件,里边内容为:"This is test"。

systemctl命令

启动服务

sudo systemctl start rc-local.service
 

查看服务状态

sudo systemctl status rc-local.service
 

老版本Ubuntu的方案

下边的方案在Ubuntu2018及之后的版本无效。

方案1:update-rc.d(2018及之前)

1.创建脚本

新建名为run_all_server.sh,内容如下:

 
 
#!/bin/bash
 
 
 
# 运行redis服务
 
cd /work/server/redis/
 
nohup redis-server redis.conf > redis.log 2>&1 &
 
 

2.添加执行权限

chmod +x run_all_server.sh
 

3.将脚本放入/etc/init.d路径下

sudo cp run_all_server.sh /etc/init.d/
 

4.将脚本添加到启动脚本

 
  1.  
    cd /etc/init.d/
  2.  
    update-rc.d run_all_server.sh defaults 90
 
 

90的含义:表明优先级,越大表示执行的越晚。

下边的命令会失败:

sudo update-rc.d /etc/init.d/run_all_server.sh defaults 90
 

错误信息:update-rc.d: error: unable to read /etc/init.d//etc/init.d/run_all_server.sh

5.移除脚本

update-rc.d -f run_all_server.sh remove
 

方案2:修改rc.local(2016及之前)

修改/etc/r.local

 
  1.  
    #!/bin/sh -e
  2.  
    #
  3.  
     
  4.  
    # 在这里写自己的命令
  5.  
     
  6.  
    exit 0
  7.  
     
 
 

一定要将命令添加在exit 0之前。里面可以直接写命令或者执行Shell脚本文件sh。

posted on   DoubleLi  阅读(1114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-06-28 通俗易懂 k8s (3):kubernetes 服务的注册与发现
2022-06-28 Kubernetes-Host网络模式,指定Pod 物理机IP
2022-06-28 微服务下的注册中心如何选择
2022-06-28 k8s、pod中的应用获取宿主机IP、PODIP等信息
2022-06-28 k8s的namespace、pod、label、deployment、service
2022-06-28 kubernetes 容器内获取Pod信息(包括:宿主主机IP)
2012-06-28 StrToInt && StrToHex && IntToString && 编辑框格式 .
点击右上角即可分享
微信分享提示