Ubuntu系统编写简单的自启动脚本

本人目前没有深入了解过自启动,对于简单要求及启动一个程序可参考本篇文章。

参考:ubuntu设置程序开机自启动_ubuntu开机自启动-优快云博客

工具:Ubuntu22.04

可以使用两种不同的办法:一种借用Ubuntu自带的图形界面【启动应用程序】;另一种在终端中进行,启动systemd服务。

一、使用Ubuntu自带工具(简单上手)

在应用界面中找到【启动应用程序】,点击

进入界面

点击添加之后,设置启动程序的名称(随便,没有用),以及指定的启动程序路径,例如👇

之后重启即可。

不需要时记得取消勾选。

二、使用systemd服务(终端操作)

首先找到/etc/systemd/system 

在该目录下创建一个以.service为后缀的文件,文件名自取

之后在文件中写入需要的功能,例如

[Unit]
Description=Server   
After=network.target

[Service]
User=ena      
WorkingDirectory=/home/ena/project/build    
ExecStart=/home/ena/project/build/Project
Restart=on-failure                      
RestartSec=5   

[Install]
WantedBy=default.target 

部分功能注释👇,有更多要求可以看我开篇引出的文章,写的很详细

[Unit]
Description:服务名称,随便起
Before:在某个条件进行前启动程序
After:在某个条件运行后启动程序

                network.target:网络模块启动
[Service]
User:填系统上自己的用户名
必要时还可以指定用户等级,防止部分插件无法使用导致自启动失败/崩溃
WorkingDirectory:启动程序所在目录  
ExecStart:启动程序径直目录
Restart:设置进程,退出后的重启方式:
                always:程序结束后总是重启
                on-failure:仅在运行失败后重启                  
RestartSec:距下一次重启程序延时,单位s
  

保存后打开终端

依次输入下列指令

#加载服务
sudo systemctl daemon-reload 
#启动服务
sudo systemctl enable ser.service
sudo systemctl start ser.service
#查看服务状态
sudo systemctl status ser.service


#停止服务
sudo systemctl stop ser.service
sudo systemctl disable ser.service

执行完sudo systemctl status ser.service后,终端显示

即脚本启动成功!

接下来重启就可以了。

最后记得关闭自启动

最后祝我的PSL宝宝天天开心!ヾ(≧∪≦*)ノ〃

### Ubuntu 系统脚本开机自启动设置方法 对于Ubuntu系统,有多种方式可以实现脚本的开机自启动功能。一种常见的方式是在较旧版本如Ubuntu 14.04中通过`update-rc.d`命令来管理服务的启用与禁用[^1]。 然而,在更现代的Ubuntu发行版(例如Ubuntu 18.04及以上),推荐的做法是创建一个Systemd服务文件来定义要运行的任务。这可以通过编写`.service`文件并放置于适当位置来达成。下面是一个基于Systemd的服务配置实例: #### 创建 Systemd Service 文件 为了使脚本能够随系统启动而执行,需先准备一个名为 `AutoRun.service` 的文件,并将其保存到 `/etc/systemd/system/` 目录下。此文件应包含如下结构[^2]: ```ini [Unit] Description=Custom Autostart Script After=network.target [Service] ExecStart=/path/to/your/script.sh Restart=on-failure [Install] WantedBy=multi-user.target ``` 上述配置说明了当网络目标完成后即开始执行指定路径下的shell脚本;如果遇到失败则尝试重启该进程;最后指定了安装时依赖的目标为多用户模式。 #### 启用和启动创建的服务 完成服务文件编辑之后,还需激活它以便下次引导时生效: ```bash sudo systemctl enable AutoRun.service sudo systemctl start AutoRun.service ``` 另外值得注意的是,在某些情况下也可以借助传统的 `/etc/rc.local` 方式来进行简单任务调度。这种方式适用于那些只需要在所有其他初始化过程结束后才被执行的操作。具体来说就是在确保 `/etc/rc.local` 存在且具有可执行权限的前提下添加想要调用的指令[^3]。 #### 移除已有的开机启动项 如果有不再需要的开机启动项目,则可通过相应工具予以删除。比如针对由`update-rc.d`加入的服务,可以用相同命令加上参数 `-f` 和 `remove` 来取消其注册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值