<Linux> Ubuntu 开机应用自启动

本文介绍了在Ubuntu 16及以后版本中,如何利用systemd进行开机自启动配置。内容包括添加自启动脚本、程序和服务,以及如何验证和关闭自启动服务。详细步骤和相关命令使得读者能理解systemd的工作原理并实现实用操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Ubuntu Xenial (Ubuntu 16)之前,开机应用自启动使用的是rc.local, Ubuntu Xenial及之后采用systemd, 而Ubuntu 16则在中间起着过渡作用,既可以使用rc.local,也可以使用systemd.我们这里采用新的方式.

systemd(system daemon)是Linux下的一种init软件,由Lennart Poettering带头开发,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。传统sysvinit使用inittab来决定运行哪些shell脚本,大量使用shell脚本被认为是效率低下无法并行的原因。systemd使用了Linux专属技术,不再顾及POSIX兼容.

Systemd并不是一个命令,而是一组命令,涉及到系统管理的方方面面,有以下几类:

systemctl:        是Systemd的主命令,用于管理系统;
systemd-analyze:命令用于查看启动耗时;
hostnamectl:    命令用于查看当前主机的信息;
localectl:        命令用于查看本地化设置;
timedatectl:    命令用于查看当前时区设置;
loginctl:        命令用于查看当前登录的用户;

详细请参考: http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

开机自启动,涉及到systemctl,下面是一些相关的命令:

# 重载所有配置
$ sudo systemctl daemon-reload

# 生成一个服务
$ sudo systemctl enable ${name}.service

# 删除一个服务
$ sudo systemctl disable ${name}.service

# 立即启动一个服务
$ sudo systemctl start ${name}.service

# 立即停止一个服务
$ sudo systemctl stop ${name}.service

# 重启一个服务
$ sudo systemctl restart ${name}.service

# kill掉一个服务的所有子进程
$ sudo systemctl kill ${name}.service

# 重新加载一个服务的配置文件
$ sudo systemctl reload ${name}.service

# 显示某个Unit的所有底层参数
$ systemctl show ${name}.service

# 显示某个Unit的指定属性的值,以httpd为例
$ systemctl show -p CPUShares httpd.service

# 设置某个Unit的指定属性
$ sudo systemctl set-property httpd.service CPUShares=500

1, 添加开机自启动脚本

1.1, 实现脚本

hellogirl.sh

#!/bin/sh -e

echo "hello, girl." > /tmp/hellogirl.log

exit 0

之后把hellogirl.sh放到一个指定目录,在这里我们这样做:

# 在/usr/local下创建一个专属文件夹,其它位置也可以
$ cd /usr/local
$ sudo mkdir tulip
$ cd tulip

# 编写hellogirl.sh脚本
$ sudo vim hellogirl.sh

# 然后把上面脚本内容复制进去,保存.
# 之后,添加可执行权限
$ sudo chmod +x hellogirl.sh

1.2, 编写服务

# 打开添加服务文件的位置
$ cd /lib/systemd/system

# 编写服务文件,这里直接复制一个进行修改
$ sudo cp rsyslog.service hellogirl.service

# 修改hellogirl.service
$ sudo vim hellogirl.service

hellogirl.service修改后如下:

[Unit]
Description=Hello girl shell Service

[Service]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值