这里我大概摸索了一下,我在用我的ubuntu18.04 的虚拟机做了一个python3的开机自启动脚本,这里分享一些经验
环境:
- ubuntu18.04
- python3.6
首先我安装的ubuntu18.04是在官网上下的iso文件,这个ubuntu自带python3.6所以不需要下载,
其实过程也很简单,我这里就两个文件,一个 start.py 是我的脚本文件,还有一个 start.sh 是开机自启动的sh文件,当然了,首先要配置开机自启动的设置
这是我的start.sh文件内容
echo "123456"|sudo -S ~/Desktop/start.py
sudo python3.6 /home/ubuntu/Desktop/watch.py &
sudo python3.6 /home/ubuntu/Desktop/sc.py ens33 &
~
我这里将用root的密码去自动执行需要root用户权限的py文件,如果你这里运行遇到一些错误例如 ~/Desktop/start.py command not found 这个没关系的
下面是配置开机自启动步骤
打开 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
将下列内容复制进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
注意,这里可能跟别的博客不太一样,第一行,有些ubuntu开机自启动的可能是 #!/bin/sh -e 而我是 #!/bin/bash , 这里我试过应该我这种方法有效,总之,要是都失败的话,这两个都可以试试
给rc.local加上权限
sudo chmod +x /etc/rc.local
启用服务
sudo systemctl enable rc-local
启动服务
sudo systemctl start rc-local.service
查看服务器状态
sudo systemctl status rc-local.service
注意 !!!
一些错误事项,如果python缺少什么包的话,需要自行安装,但是注意,如果你不是root用户下安装了这个包,是在其他用户按照此配置设置了的话,可能会在开机时显示如下错误,包未找到
这种情况就需要在root下也安装一遍所需的包