首页 > 其他分享 >树莓派创建开机自启动任务

树莓派创建开机自启动任务

时间:2024-11-08 15:58:54浏览次数:1  
标签:树莓 py Desktop write 开机 自启动 home pi hello

一、编写需要开机启动的后台任务

毕竟为了醋才能包饺子嘛~
简单写一个输出 x.hello 的demo用于测试后续的配置是否成功。

import time

# 文件路径
file_path = "/home/pi/Desktop/output.txt"  # 根据具体情况修改

def write_hello():
    count = 1
    try:
        while True:
            with open(file_path, 'a') as file:
                file.write(f"{count}. hello\n")
                count += 1
            time.sleep(1)  # 每隔1秒写入一次
    except KeyboardInterrupt:
        print("程序被中断,正在退出...")
        # 可以在这里执行清理工作或记录退出信息

if __name__ == "__main__":
    write_hello()

二、具体操作

1、给予文件权限

假设文件路径:

/home/pi/Desktop/write_hello.py

终端输入:

chmod 777 /home/pi/Desktop/write_hello.py

以防文件没有权限可以执行,其实这个指令给的权限太大了,大家可以根据需求来给文件具体的权限。

2、编辑cron表

终端输入:

crontab -e

这里可以介绍一下这个指令:
在树莓派(或其他Linux系统)中,crontab -e 是用于编辑用户的定时任务表(称为“cron”表)的命令。通过 crontab -e,用户可以设置定时任务,这些任务会在指定的时间自动运行,常用于自动化脚本执行或系统维护。

  • 自动化任务管理:crontab -e 可以帮助用户定期执行脚本或命令,比如每天备份数据、每小时检查系统状态等。
  • 调度命令:可以设定任务在特定的分钟、小时、日、月或星期几执行,或者使用特殊的间隔符(例如 @reboot,在系统重启时执行)。
  • 独立于用户会话:使用 crontab 设置的任务在后台独立运行,无需用户手动启动,即使退出会话也会执行。

具体用法这里就不详细介绍了!!


第一次打开的时候会显示选择编辑器,我这里选择了nano编辑器。
在crontab编辑器当中添加指令:

@reboot /usr/bin/python3 /home/pi/Desktop/write_hello.py &

下面具体介绍一下指令的作用:

  • @reboot:表示在每次树莓派重启时执行这个命令。
  • /usr/bin/python3:这是 Python3 的解释器路径,通常在树莓派上是/usr/bin/python3,可以通过 which python3 命令确认。
  • /home/pi/Desktop/write_hello.py:这是你的 Python 脚本路径、
  • &:让脚本在后台运行,这样它不会阻塞系统的其他启动进程。

编辑好之后保存、退出编辑器。

3、检查是否编辑成功

终端输入:

crontab -l

可以检查是否修改成功。

4、重启测试程序是否成功执行

终端输入:

sudo reboot

进行重启设备,之后就可以在路径下查看是否生成了output.txt文件了。如果你有看见,就说明配置成功了~~

5、杀死后台程序

从上面在cron表当中的指令可以看到有&这个标志,说明程序是在后台一直执行的,也就意味着无法通过终端直接关闭这个程序,此时可以通过查询文件的PID来杀死进程。
终端输入:

ps aux | grep write_hello.py

通过ps来查找后台程序,使用grep匹配write_hello.py这个程序
会有如下的输出:

pi        1234  0.0  0.1  26756  2404 pts/0    S    10:00   0:00 python3 /home/pi/Desktop/write_hello.py
pi        5678  0.0  0.0  13976   876 pts/1    S+   10:01   0:00 grep --color=auto write_hello.py

这里需要强调一下只有第一个python3 /home/pi/Desktop/write_hello.py才是后台执行的程序,第二个虽然也匹配到了write_hello.py,但实际上只是grep指令进行匹配的后台程序,如果执行要匹配python执行的后台程序,可以将指令改为:

ps aux | grep "[w]rite_hello.py"

这样输入就类似:

pi        1234  0.0  0.1  26756  2404 pts/0    S    10:00   0:00 python3 /home/pi/Desktop/write_hello.py

查询到程序的PID为1234,直接使用kill指令杀掉即可。
终端输入:

kill 1234

即可关闭这个后台任务了。

标签:树莓,py,Desktop,write,开机,自启动,home,pi,hello
From: https://www.cnblogs.com/Vsonic12138/p/18535202

相关文章

  • 树莓派建站
    使用树莓派作为服务器托管你的应用或网站是一个有趣且实用的项目。借助树莓派的低功耗和小尺寸,你可以轻松地在家中搭建一个轻量级的服务器。以下是如何使用树莓派搭建服务器和结合CloudflareTunnel的步骤:1.准备树莓派安装操作系统:使用RaspberryPiImager或其他工具将树......
  • Android 关闭SE权限后编译user版本无法开机,超级坑巨坑的地方
    问题描述:debug版本可以正常开机,user版本无法正常开机,进入fastboot模式原因:关闭了SE权限  即Selinux.cpp办法:添加宏控:CONFIG_SECURITY_SELINUX_DEVELOP=y到config文件下============经验证有效!!!!根据谷歌要求如此有些时候我们添加的外设和接口太多或者我们添加访问......
  • 浪潮服务器开机硬盘亮黄灯数据恢复
    一、初步检查与诊断确认黄灯硬盘:首先,确认是哪块或哪几块硬盘的指示灯亮黄灯。使用服务器的管理界面或软件来查看硬盘的详细状态,包括剩余空间、读写速度、错误日志等。硬盘检测:使用硬盘检测工具对亮黄灯的硬盘进行详细的检测。检测硬盘是否存在物理损坏(如硬盘电机故障、磁头......
  • 树莓派开发相关知识六 -串口通讯
    1、uart串口通信uart串口通信协议,使用txd,rxd双引脚实行异步数据传输,其中txd为传输口,rxd为接收口。其协议如上图,由起始位+有效数据位+奇偶校验位(*可选),停止位(*宽度可调),空闲位组成,即根据uart协议,当我们需要发送如01010101这8位有效数据时,我们应该让txd引脚成010101010(LSB......
  • Redis伪分布式集群三主三从模式+开启自启动+自动部署集群
    搭建redis集群首先进入一个新目录,创建六个以端口号为名字的子目录$mkdirredis-cluster$cdredis-cluster$mkdir800180028003800480058006添加集群配置文件把编译好的redis.conf文件复制到redis-cluster/800*/文件夹中修改对应文件夹的redis.conf,内容如下:da......
  • 一步步教你部署网络唤醒服务器,轻松搞定设备睡眠、开机、关机与服务器端口检测
    文章目录......
  • 树莓派5安装ollama+open-webui
    新购置了个PI5,就想着折腾些什么。除了给它装codesys之外,想到(尤其是看到官配的冷却风扇)是不是能跑个AI什么的。捜了一下,除了TensorFlowLite、PyTorchMobile还有做视觉的OPENCV和YOLO。除此之外,一个熟悉的词汇又冒了出来。ollama。记得有段时间看到很多短视频推送,想着就找下资料看......
  • Win10系统下如何设置开机自动启动程序
    在Windows操作系统中,设置程序自动启动是一个常见的需求,以确保每次开机时需要的软件能够自动运行。以下是几种在Windows系统(包括Windows10和Windows11)中设置程序自动启动的方法:1、找到启动文件夹,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\StartMenu\Pr......
  • java项目自启动方案——jar包做成服务(Windows版本)
    需求:公司做的很多项目都是属于客户端—服务器形式,在客户端部分运行了属于面向用户操作的项目jar包,客户端机器就不像服务器那样,经常会遇到重启机器的情况,所以让我们的项目能自启动就是个必须的工作。 方案:(1)环境:电脑需要安装Microsoft.NETFramework4,如果有的话这个可以不......
  • 威联通NAS开机报错数据恢复
    针对威联通NAS开机报错的数据恢复问题,以下是一些建议的解决步骤和恢复方法:一、初步检查与诊断检查硬件状态:确保NAS设备的电源正常连接,并检查所有硬盘是否都正常工作。如果可能,尝试重新插拔硬盘或更换故障硬盘。2.查看错误代码和日志:登录NAS管理界面(如果还能访问),查看系统日志......