Ubuntu-Linux-开机运行指定的命令-自动运行命令
PS: 如果你用的桌面环境,可以在startup applications程序里添加你想要执行的命令,简单,执行优先级最低。如果没有桌面环境或者想执行更复杂的逻辑,继续阅读本文吧。
分两种方法:
方法一
参考: https://www.pimspeak.com/ubuntu-20-04-start-on-boot.html
-
在
/lib/systemd/system/rc-local.service文件最后添加如下内容[Install] WantedBy=multi-user.target Alias=rc-local.service -
把这个文件链接到
/etc/systemd/system/目录下面ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/ -
编辑
/etc/rc.local文件,写入自定义脚本。比如#!/bin/bash touch /root/a.txt bash /root/app.sh注意,第一句话是必要的。
-
给rc.local加上执行权限
sudo chmod a+x /etc/rc.local -
默认使用root用户执行,如果想使用非root用户,可以在/etc/rc.local文件中这么写,即在命令前加上
su - 用户名 -c#!/bin/bash su - user1 -c "touch /home/user1/a.txt" su - user1 -c "bash /home/user1/a.sh"
方法二
[转载]https://blog.csdn.net/tuzixini/article/details/95616333
- 在 /etc/init.d/ 中创建自己的开机运行脚本,脚本名字任意
sudo vim /etc/init.d/my.sh
- 仿照其他的脚本写一个头,然后在后面写你想要执行的命令这里照搬
samba-ad-dc,盲猜Required-Start应该是在这之前需要什么程序先启动之类的。Default-Start应该是设置的优先级之类的。
#! /bin/sh
### BEGIN INIT INFO
# Provides: samba-ad-dc
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Samba daemons for the AD DC
# Description: Meta-service to provide AD and SMB/CIFS services to clients
### END INIT INFO
# 比如
/opt/frp/frpc -c /opt/frp/frpc.ini
- 添加可执行权限
sudo chmod 755 /etc/init.d/my.sh
- 加入开机启动
## 90为优先级,越大表示执行的越晚
sudo update-rc.d my.sh defaults 90
- 删除启动项
sudo update-rc.d -f my.sh remove
Comments ()