ubuntu 添加开机自启脚本程序

使用 rc.local 文件 (不推荐)

为什么不推荐使用rc.local 1
系统管理员有时会向启动序列添加本地有用的命令。 这些添加可能旨在启动或运行不属于标准 systemd 启动的本地进程。 可以添加一个新的 systemd 服务单元来启动启动时所需的每个程序,但是旧的 rc.local 方法为任何和所有本地启动需求提供了一个可执行文件
rc.local 没有日志可以查看

  1. 修改/lib/systemd/system/rc-local.service脚本
[Install]
WantedBy=multi-user.target  
Alias=rc-local.service

在这里插入图片描述

2. 创建/etc/rc.local文件夹,并添加可执行权限

mkdir /etc/rc.local
chmod +x /etc/rc.local

自启动脚本放到这个文件夹里面
2. 创建/etc/rc.local文件,并添加可执行权限,需要自启动的脚本写到这个文件里面

touch /etc/rc.local
chmod 777 /etc/rc.local
echo "echo 'hello world'" > /etc/rc.local
  1. /etc/systemed/system目录下创建软链接
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/

systemd默认会读取/etc/systemd/system下的配置文件

注意事项

  • 如果你的脚本中包含bash或者是可执行程序,一定要在末尾加上&,否则重启系统时会卡在启动界面进不去。
  1. 启动服务并检查服务状态
systemctl enable rc-local
systemctl start rc-local.service
systemctl status rc-local.service

使用Systemd service1

  1. 创建可执行文件
    在/usr/local/bin目录下创建一个可执行文件,当然也可以在其他目录下创建文件。而这个目录的好处有,他包含在系统的环境变量里面。
cd /usr/local/bin
vim mystartup.sh
chmod 777 mystartup.sh

mystartup.sh

#!/bin/bash

################################################################################
# mystartup.sh
#
# This shell program is for testing a startup like rc.local using systemd.
# By David Both
# Licensed under GPL V2
#
################################################################################

# This program should be placed in /usr/local/bin

################################################################################
# This is a test entry

echo `date +%F" "%T` "Startup worked" >> /root/mystartup.log
  1. 创建systemd service
    在/usr/local/lib/systemd/system/目录下创建mystartup.service 文件
cd /usr/local/lib/systemd/system/
# 如果没有这个目录就创建 mkdir -p /usr/local/lib/systemd/system/
vim mystartup.service

mystartup.service

################################################################################
# mystartup.service
#
# This service unit is for testing my systemd startup service
# By David Both
# Licensed under GPL V2
#
################################################################################
# This program should be placed in /usr/local/lib/systemd/system/.
# Create a symlink to it from the /etc/systemd/system directory.
################################################################################
[Unit]
Description=Runs /usr/local/bin/mystartup.sh

[Service]

ExecStart=/usr/local/bin/mystartup.sh


[Install]

WantedBy=multi-user.target
  1. 创建软链接
cd /etc/systemd/system
ln -s /usr/local/lib/systemd/system/mystartup.service
  1. 测试服务单元
systemctl status mystartup.service
systemctl start mystartup.service
systemctl enable mystartup.service

  1. Replacing rc.local in systemd Linux systems ↩︎ ↩︎

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caesarding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值