主页 M

ubuntu自启动,程序随机自运行

2022-12-15 网页编程网 网页编程网

1.背景

实现linux下程序随开机自运行,如服务器日志脚本等。

2.原理

Ubuntu 20.04的服务管理是基于systemd的,设置服务自启动最推荐的方法是创建一个systemd服务文件,配置好要执行的服务。

3.创建开机自启动脚本

脚本名run.sh,内容如下:

#!/bin/bash

cd ~/
touch girl.txt

开头一行不能省略,若运行多个程序,防卡死,也可加程序间加sleep 2,即休眠一会。

4.创建systemd服务文件

在/etc/systemd/user目录下创建一个systemd服务文件,命名为user-defined.service,内容如下:

[Unit]
After=network.service

[Service]
ExecStart=/home/xing/run.sh

[Install]
WantedBy=default.target

其中,After表示服务何时启动,After=network.service 表示网络连接完成后,启动我们的服务;ExecStart表示脚本(run.sh)的路径;WantedBy默认填default.target。

注意:ExecStart=/home/xing/run.sh 不能用 ~/ 来代替/home/$USER。

5.将systemd服务文件与脚本更改权限,使其可执行。

sudo chmod 744 ~/run.sh
sudo chmod 664 /etc/systemd/user/user-defined.service

6.重新加载系统的systemd服务文件,并启用我们自己写的user-defined.service文件

sudo systemctl daemon-reload
systemctl --user enable user-defined.service

7.其它

以上即完成开机自启动,但是,systemd启动的服务默认是root权限,放脚本很不安全,如果只需要登录用户的权限,改成user service (systemctl --user)更好,如果有桌面环境,还可以用XDG Autostart。

阅读原文
阅读 1717
123 显示电脑版