开机自启任务
一. 概述
systemd
是现代 Linux 系统中管理系统和用户服务的工具,可以创建一个 systemd 服务
来实现开机自启的任务
二. 操作
1. 创建 systemd 服务文件
使用文本编辑器创建一个新的服务文件:
sudo vim /etc/systemd/system/test.service
2. 在文件中添加以下内容:
[Unit]
Description=My Script
After=network.target
[Service]
Type=oneshot
ExecStart=source /path/yourScript.sh
User=root
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
3. 添加开机自启
sudo systemctl enable test.service
三. Service解析
1. [unit] 部分
[Unit]
Description=Mount VMware Shared Folders
After=network.target
Description
:这是服务的描述文本。它用于向用户或系统管理工具提供服务的简短描述。After=network.target
:表示该服务在 network.target 后启动,即网络服务已经启动后才开始执行。
2. [Service] 部分
[Service]
Type=oneshot
ExecStart=source /path/yourScript.sh
User=root
RemainAfterExit=true
Type=oneshot:
表示该服务将在启动后执行一次任务并退出。oneshot
类型通常用于那些只执行一次任务、然后完成的服务,而不需要持续运行。对于 oneshot 类型的服务,systemd 会在服务成功执行完 ExecStart 后认为该服务已完成。ExecStart:
这是指定该服务执行的命令。User=root:
指定服务以 root 用户身份运行。(默认也是 root的)RemainAfterExit=true:
指示 systemd 在服务执行完毕后将服务的状态保持为“激活”(active),即使该服务已经退出。因为 Type=oneshot 服务会在执行一次任务后退出,而设置 RemainAfterExit=true 允许 systemd 保持服务的“激活”状态,直到下次启动或重新启动该服务。
3.[Install] 部分
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target:
WantedBy 指定了该服务在启动时应当被启用的目标。multi-user.target 是一个标准的 systemd 启动目标,表示多用户模式,通常用于支持多用户的常规服务器环境。这意味着当系统进入 multi-user.target 状态时,test.service 会被启动并执行挂载操作。
WantedBy
可以理解为“当系统处于某个目标状态时,该服务应该启动”。在这里,multi-user.target 是系统正常运行时进入的目标,通常是大多数 Linux 发行版的默认运行级别
四 . 一个最基本的服务文件
[Unit]
Description=My Local Service
[Service]
ExecStart=/usr/bin/mylocalservice
[Install]
WantedBy=multi-user.target