我们需要配置systemd 文件。
- 在/lib/systemd/system/目录下创建一个sample.service文件输入一下命令
sudo nano /lib/systemd/system/sample.service
可以理解为使用nano编辑器编辑sample文件,当然它不存在文件会自动创建,如编辑一个不存在文件demo.txt nano编辑器会自动创建一个demo.txt文件。
- 在添加下列
[Unit] Description=My demo Service #可以之定义名称 After=network.target #我需要使用网络所以把脚本放在network后启动 [Service] Type=simple ExecStart=/usr/bin/python /home/pi/test/wifi.py #这里是你要执行的python脚本 User=pi #设置需要启动的用户 [Install] WantedBy=multi-user.target
- 写完之后ctrl+s保存 ctrl+x退出
- 设置文件权限需要设置成 644:
sudo chmod 644 /lib/systemd/system/sample.service
- 在systemctl启动单元里设置启动项
sudo systemctl daemon-reload sudo systemctl enable sample.service
- 【UNIT】
- After:该语句列出了在该单元之后应激活的单元。仅仅是规范服务启动的顺序,并没有强制要求启动。
- Before:该语句列出了在该单元之前应激活的单元。仅仅是规范服务启动的顺序,并没有强制要求启动。
- Wants:定义该单元启动之后还需要启动哪些unit。
- 【SERVICE】
- Type=simple:默认值,执行ExecStart指定的命令,启动主进程
- Type=forking:以fork方式从父进程创建子进程,创建后父进程会立即退出
- Type=oneshot:一次性进程,Systemd会等当前服务退出,再继续往下执行
- Type=dbus:当前服务通过D-Bus启动
- Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
- Type=idle:若有其他任务执行完毕,当前服务才会运行