自定义systemd 服务
一、需求
当我写一个脚本让他在开机后运行,写在/etc/rc.d/rc.local里,开机没有运行,或许运行了没达到你要的效果,这个时候你可以写一个自定义脚本服务
1.写脚本
xxxxxxx
脚本内容
xxxxxxx
写完加权限
mv xxx /usr/local/bin
2.写服务
vim /etc/systemd/system/xxxx.service
[Unit]
Description=自定义描述
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/xxx
[Install]
WantedBy=multi-user.target
3.systemctl方式管理
systemctl enable xxxx.service
简单介绍
基本结构: 一个 systemd 服务单元文件通常包括以下几个主要部分:
- [Unit]:这个部分定义了服务的基本信息,如服务的描述、依赖关系等。
Requires=:这个字段定义了当前服务对其他服务的依赖关系。当使用 Requires= 时,表示当前服务依赖于另一个服务。如果另一个服务未启动或启动失败,那么当前服务将不会启动
- [Service]:这个部分包含了服务的详细设置,如启动命令、环境变量、工作目录等。
Type=oneshot: 这表示服务是一次性的。一旦服务启动并执行完定义的命令,它就会退出。这种类型适用于不需要保持长期运行的任务,例如启动时执行某个命令,或者执行某些设置操作后立即退出。
还有其他类型simple forking oneshot dbus notify
- [Install]:这个部分定义了如何在特定运行级别下启用或禁用服务
WantedBy=multi-user.target服务会在 multi-user.target 目标下启动。这意味着当系统进入多用户模式时(正常启动后),你的服务将会自动启动。
NFS
rpcinfo 工具显示每个基于 RPC 的服务,以及其端口号、RPC 程序号、版本号和 IP 协议类型(TCP 或 UDP)
rpcinfo -p