Ubuntu20.04设置开机自启动的shell脚本



前言

给出一个shell脚本的文件示例;

ubuntu20.04下编写shell脚本文件,实现检测程序的自启动功能,并且在它停止运行后自动运行。


一、Shell 与自启动是什么?

Shell 脚本是一种用于编写命令行脚本的脚本语言,常用于自动化任务、批量处理和系统管理等方面。

面对一些远程设备,需要让其开机自动启用自定义的功能,但是远程设备每次开机远程启动,或者多用户分别进行作业使用,不能自启动会导致管理不及时的问题。

二、配置步骤

1.shell脚本示例

首先确定你的路径,可以在指令行里用pwd指令打印,同时给shell脚本文件增加执行权限。在这里给出我的脚本文件路径作为参考。

jjc@jjc:~/learn$ pwd


/home/jjc/learn

使用touch test.sh生成一个名为test.py的脚本文件,然后用gedit编辑器写功能。

编辑器是可选的,可以选择vim,nano等。

touch start.sh

写好的文件如下所示:

#! /bin/bash
#声明编译器

#定义主体功能
function run_script() {

    #打印Running Python script...
    echo "Running Python script..."

    #使用python3启动/home/jjc/learn/new_load路径下的start.py程序
    python3 /home/jjc/learn/new_load/start.py

    # $?捕获上一条指令的状态,成功捕获0,失败捕获非0值

    if [ $? -eq 0 ]; then
        #执行成功打印的提示信息
        echo "Python script finished successfully."
    else

        #执行失败的提示信息
        echo "Python script failed. Restarting..."
    fi
}

#循环功能
while true; do
    run_script
done

查看创建的文件是否又可执行权限,没有则需要添加。

ll start.sh 

如下图所示,如果文件有x表明是可以执行的。没有则需要添加。

 添加执行权限。

sudo chmod +x start.sh 

使用cat start.sh查看编写的文件。

cat start.sh

使用more start.sh查看编写的文件。

more start.sh

 脚本文件编写完成。

2.设置开机自启动

在Ubuntu 20.04里面实现自启动功能,首先需要创建一个单元文件进行自启动配置。

创建一个名为 start01.service 的单元文件,并将其保存到 /etc/systemd/system/ 目录下:

sudo nano /etc/systemd/system/start01.service

编辑start01.service文件,在文件添加下面的内容:

[Unit]
Description=Start Script

[Service]
Environment=PYTHONPATH=/home/jjc/.local/lib/python3.8/site-packages
ExecStart=/home/jjc/learn/start01.sh

[Install]
WantedBy=default.target

Environment=PYTHONPATH=/home/jjc/.local/lib/python3.8/site-packages这一句是因为我在shell脚本内启动了python文件,需要依靠python的解释器,所以添加了python解释器的路径。

ExecStart=/home/jjc/learn/start01.sh是我的文件的路径,根据实际脚本所在位置的情况使用pwd查询位置。

保存并关闭文件,然后重新加载 systemd 配置并启用服务

#重新加载 systemd 守护程序
sudo systemctl daemon-reload


#设置开机自启动
sudo systemctl enable start01.service

重启机器生效即可。

当需要关闭开机自启动时,执行下面的指令。


#关闭开机自启动
sudo systemctl disable start01.service

重启生效即可。


总结

本文仅仅简单介绍了在ubuntu20.04下面如何设置开机自启动的shell脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值