赞
踩
sudo chmod +x /home/user/myscript.sh
ubuntu上找到session and Startup或者Startup Application,这是在设置当中,如果是中文,则是 启动应用程序,
如果是ubuntu老版本或者镜像版本,直接搜Startup


点击添加add,在名称中输入自定义名称,在命令command中输入sh脚本的位置,注释可以不填,然后点击保存

然后reboot进行重启,可开机自启
方法2是使用的是ubuntu18.04以上版本存在的systemd 服务,注意低版本的ubuntu可能不支持该服务
1. 在/etc/systemd/system 目录下创建一个新的 service 文件,命名为 myscript.service:
sudo vim /etc/systemd/system/myscript.service
2. 在该文件中输入以下内容:
- [Unit]
- Description=My Script Service
- After=network.target
-
- [Service]
- User=user
- ExecStart=/home/user/myscript.sh
-
- [Install]
- WantedBy=multi-user.target
各参数解释:
【Description】 对本服务的描述【After】字段不是必须的,服务依赖的其他服务,本例中需要在 network.target 服务启动后才能启动本服务。可以省略。如果省略该字段,则 systemd 将默认将当前服务的启动顺序设置为与其他服务无关,即在启动过程中没有任何依赖性关系,服务的启动顺序由系统自行决定。然而,在某些情况下,如果服务依赖于其他服务,可以使用 After 字段来明确指定其依赖关系,以确保服务的启动顺序正确。【User】字段不是必须的,如果省略该字段,服务将使用 root 用户来运行脚本。【ExecStart】 关键字段,服务启动命令,指定服务启动时需要执行的命令或脚本【WantedBy】用于指定服务的自动启动级别,在 Linux 系统中,多用户模式是指允许多个用户同时登录并使用系统资源的模式,与之相对的是单用户模式,只有一个用户可以登录并使用系统资源。多用户模式是 Linux 系统最常用的模式之一,因此 multi-user.target 是系统默认的运行级别。
3. 保存并关闭该文件,然后启动该服务并将其设置为开机自启:
- sudo systemctl daemon-reload
-
- sudo systemctl start myscript.service
-
- sudo systemctl enable myscript.service
现在该脚本文件将在每次系统启动时自动运行。
4. 开机自启后进行检查service服务状态
sudo systemctl status myscript.service
5. 如果需要停止该服务并禁用开机自启,可以使用以下命令:
- sudo systemctl stop myscript.service
-
- sudo systemctl disable myscript.service
注意:在创建 service 文件时,需要确保该文件的命名与服务名称相同,并且后缀为 .service。同时,在使用 systemctl 命令时,需要使用 sudo 权限。
在ubuntu早期版本以及18.04后的版本,还是支持在rc.local中进行操作开机自启,以下为步骤
rc.local 文件:sudo gedit /etc/rc.local exit 0 之前。例如,如果要执行 /path/to/your_script.sh 脚本,可以添加以下行:/bin/bash /path/to/your_script.sh /bin/bash /path/to/your_script.sh & & 符号以使其以后台模式运行。保存并关闭文件rc.local 文件可执行权限,使用以下命令: sudo chmod +x /etc/rc.local crontab 文件: crontab -e 如果是第一次编辑 crontab 文件,系统会提示选择编辑器,选择你喜欢的编辑器。crontab 文件中添加一行,指定要在开机时执行的命令。例如,要在开机时执行 /path/to/your_script.sh 脚本,可以添加以下行: @reboot /bin/bash /path/to/your_script.sh 注意,路径和命令要正确无误。crontab 中指定的命令将在系统启动时自动执行。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。