一直想实现一段自启动的代码,今天尝试了下,成功了,做个记录。
首先,我用的是imx6ull处理器,嵌入式linux内核版本为4.9.88
然后,上位机用的虚拟机ubuntu22.04.01。
先在ubuntu上面试了试,能够自启动,然后再下载到imx6上,成功。
1.我们需要在/etc/systemd/system中添加后缀为.service的配置文件。
例子我创建了/etc/systemd/system/autostart.service,注意把/home/root/python/autostart.sh改为自己的本地文件
[Unit]
Description=python_detection
Documentation=
After=network.target
Wants=
Requires=
[Service]
ExecStart=/home/root/python/autostart.sh
ExecStop=
ExecReload=/home/root/python/autostart.sh
Type=forking
[Install]
WantedBy=multi-user.target
2.创建/home/root/python/autostart.sh文件如下,注意/home/root/python/mydeamon.py的目录
#!/bin/sh
sleep 10
cd /home/root/python/
sudo /usr/bin/python3 mydeamon.py &
3.创建/home/root/python/mydeamon.py如下,程序打开一个f.txt,每次写10行(0,9)之间的随机数。
import os
import sys
import random
f=open('f.txt','a')
for i in range(0,10):
f.writelines(str(random.randint(0,9)))
f.write("\n")
f.close()
4.使用如下命令测试autostart.service是否能够正常运行:
sudo systemctl start autostart.service
5.使用如下命令查看程序是否正常运行
sudo journalctl -f -u autostart.service
6.如果能够正常运行,设置开机启动:
sudo systemctl enable autostart.service
7.重启试试吧,哈哈。