Ubuntu设置开机自启动

50 阅读1分钟

1.有界面的情况下

可以安装Startup Application 然后配置

开机自启动.jpg

2.无界面的情况下

1.可以使用systmd/sytem/xx.service

首先在/etc/systemd/system/下新建一个myservice.service 然后编写这个文件

sudo vim myservice.service

添加内容

[Unit]
Description=My Service
After=network.target

[Service]
Type=forking
WorkingDirectory=/home/ubuntu/hzj/
ExecStart=/home/ubuntu/hzj/startup.sh

[Install]
WantedBy=multi-user.target

在/home/ubuntu/hzj/下新建startup.sh,里面是要启动的命令

#!/bin/sh
  
echo 123 | sudo -S create_ap -m nat wlan0 eth0 ubuntu 12345678 -g 192.168.12.1 > /dev/null 2>&1 &

nohup python3 main.py &
nohup python3 send_dianya.py &
nohup python3 websocket_server.py &
exit 0

主要就是开启一个热点,然后启动Python服务,需要注意的是,在myservice.service下面要设置工作目录为放这些python文件的文件夹,forking是后台运行的意思。还需要注意的事,开机默认启动的root用户,所以使用的环境也是root里面的Python环境,所以需要在root里面安装Python所依赖的包。

然后就是设置启动服务 首先在开机状态下验证一下这个服务是否可行

sudo systemctl daemon-reload
sudo systemctl stop myservice.service
sudo systemctl start myservice.service
sudo systemctl status myservice.service

如果没有报错,程序启动正常,那样就设置开机自启动这个服务

sudo systemctl enable myservice.service 
sudo reboot

如果想要移除这个服务的自启动,可以使用

sudo systemctl disabled myservice.service

2.可以使用/etc/profile.d/

可以在profile.d下面添加xx.sh文件,开机会自启动他,但是这个一般是配置环境变量,他的启动时机是在用户登录的时候启动,所以只要有用户登录就会触发。