Linux服务器搭建笔记-004:自定义开机启动服务

一、服务管理

Ubuntu18.04版本以上使用 systemd 管理工具对启动项进行管理,该工具默认读取 /etc/systemd/system 下的文件,并且链接到 /lib/systemd/system/ 目录下的脚本文件。

其中 /etc/systemd/system 存放的是系统管理员设定的启动服务,优先级在启动项中处于最高地位。/lib/systemd/system/ 存放的是安装包的启动服务。

对于我们自定义的启动服务,建议放到 /lib/systemd/system/ 下,然后利用软连接的方式连接到 /etc/systemd/system。这两个目录下启动项服务的优先级从高到低,如果在两个文件夹下对同一个启动项都有配置,优先级高的会覆盖掉优先级低的。

二、自启动服务配置

本篇博客通过开机在用户 /home/<用户名> 目录下创建一个测试文件,实现开机自启动服务的配置功能。

1. 修改服务文件

  • 修改启动脚本:rc-local.service
ff@EVA-01:~$ cd /lib/systemd/system
ff@EVA-01:~$ sudo vim rc-local.service
  • 首先在文件末尾添加 [Install] 内容,service文件中各个标题含义大家可以通过该 链接 进行详细学习。
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes

# 添加内容
[Install]  
WantedBy=multi-user.target  
Alias=rc-local.service

2. 创建链接脚本

  • 创建 rc.local脚本,并添加执行权限。
ff@EVA-01:~$ sudo vim /etc/rc.local
  • 将打开后的文件中填入如下内容:
#!/bin/bash
# 创建一个脚本
touch /home/<你的用户名>/testfile.txt
  • 保存退出后对该文件进行可执行权限添加:
sudo chmod a+x /etc/rc.local

3. 建立软连接

  • 在 /etc/systemd/system 目录下建立软连接:
ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/

4. 测试及说明

  • 经过上述配置后使用reboot命令重启系统,可以在用户的目录下看见我们创建的 testfile.txt 文档。
  • 说明1: 上述服务文件中 ExecStart=/etc/rc.local start 表示的是该服务中启动的内容,大家可以把希望执行的命令编写进该文件中,包括运行.sh脚本、修改文件参数、运行python程序等各种操作。
  • 说明2: 上述服务文件创建的文件,比如本例程中的 testfile.txt 所属权限为root用户,可以理解为该服务中所有指定操作均由root用户完成,可以修改所有系统文件,不用考虑权限问题。

(来自一名励志用“普通话”讲技术的菜狗子~)

你可能感兴趣的:(Linux服务器搭建笔记,linux,ubuntu)