1、自启动方法
打开 rc-local.service 文件sudo vim /lib/systemd/system/rc-local.service
这里的vim 未找到的话可以自己下载 ,或者可以用自带的vi
打开的文件中,可以看到已经存在[Unit]、[Service]模块。在尾部,添加[install]参数,并保存退出。
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
创建并编辑 rc.local文件
vim /etc/rc.local
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh /home/ubuntu/Desktop/demo.sh
exit 0
通过linux系统服务启动后会调用rc.local文件来实现,即在rc.local文件中增加启动shell脚本,如下图所示,调用一个mqtt.sh的脚本文件,其中 &表示在后台运行,脚本文件最后再调用你要启动的程序。
2、shell脚本
shell脚本程序的内容也比较简单,即调用要启动的程序,要增加&表示在后台运行,注意shell脚本要增加可执行权限。
比如下面3个文件都增加了可执行权限了。
3、单独运行测试
python程序的单独运行测试,可以在命令行中输入:nohup ./mqtt_ultra.py &的方式来运行。有的文件运行需要切换到root权限来运行。nohup命令的意思不挂断运行,当你的程序有调用标准输出来打印一些信息时,这个命令必须使用,这个命令把你的标准输出打印到nohup.out文件中,当然也可以指定打印到其他文件中去。