linux系统----软件/脚本开机自启动

一、有界面

开机自启动的软件有界面或者脚本中有些操作涉及到界面

方法:/etc/xdg/autostart 下,.desktop文件实现开机启动

步骤1: 在/etc/xdg/autostart 目录下建立一个 test.desktop文件,并对 test.desktop文件进行以下编辑:

[Desktop Entry]
Name=Test	 		#可执行文件名字
Exec=/root/Test 	#可执行文件路径
Type=Application	#可执行文件类型
其中: Exec= ××××××            -------------某软件的启动命令或者执行的脚本路径

步骤2:test.desktop 需要有root权限

二、无界面

开机自启动的软件无界面或者脚本中不涉及到界面

方法1:/etc/rc.local
1、编辑 /etc/rc.local
vi /etc/rc.local

2、添加要执行的命令 在exit 0 之前

注意:里的执行命令都必须是全路径的。
  1. rc.local的启动是在用户登录之前,对于整个系统开机而言的启动程序执行,当程序执行完成后才会进入用户界面,所以当开机启动项过多,那么系统开机的时间就会变长。
  2. rc.local只能运行命令行程序,无法运行带界面的程序,运行带界面的程序会报错无法运行然后直接跳过该程序。
方法2: /etc/profile.d/

将脚本放到/etc/profile.d/目录下 并赋值777权限,开机后,会遍历/etc/profile.d/*.sh

方法3:systemd , 在/etc/systemd/user目录下创建一个systemd服务文件,配置好要执行的服务

步骤1 : 在/etc/systemd/user目录下创建一个systemd服务文件, 命名为user-defined.service(可以命名为以.service结尾的任何名称), 内容如下:

[Unit]
After=network.service
# After表示在哪个服务启动后启动我们的程序,After=network.service 表示网络连接完成后,启动我们的程序

[Service]
ExecStart=/home/hqc/test.sh # 此处只能绝对路径 -------------程序命令或者脚本
# ExecStart表示我们的脚本(步骤1中的test.sh)的执行路径

[Install]
WantedBy=default.target
# WantedBy默认填default.target,表示我们程序所在的服务组。

步骤2 : 将systemd服务文件和我们的脚本更改权限,使其可执行。

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

步骤3: 加载系统的systemd服务文件,并启用我们自己写的user-defined.service文件。

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

注: 取消开机自启动

systemctl --user disable user-defined.service
cd /etc/systemd/user
rm user-defined.service
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值