Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 98|回复: 0

使用Systemd在开机运行服务

[复制链接]

254

主题

363

帖子

2431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2431
发表于 2025-3-31 03:47:27 | 显示全部楼层 |阅读模式
使用systemd服务方案(推荐)
对于基于systemd的系统(如最新的Ubuntu版本),推荐使用systemd的原生功能来创建自定义的启动服务,而不是使用rc-local.service。以下是如何创建一个自定义的systemd服务:

创建服务文件:

创建一个新的服务文件,例如/etc/systemd/system/mycustomservice.service:

  1. [Unit]
  2. Description=My Custom Service
  3. After=network.target

  4. [Service]
  5. Type=oneshot
  6. ExecStart=/path/to/your/script.sh

  7. [Install]
  8. WantedBy=multi-user.target
复制代码

重新加载systemd并启动服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl enable mycustomservice
  3. sudo systemctl start mycustomservice
复制代码


使用systemd服务可以提供更多的灵活性和控制,同时保持与现代Linux系统的兼容性。如果你正在维护一个较新的系统,建议使用这种方法。

1. Type=oneshot 的含义
在 systemd 的服务单元文件中,Type= 选项用于指定服务的启动类型。oneshot 是其中的一种类型,具体含义如下:

Oneshot:这种类型的服务执行一次就立即退出。systemd 会等待服务执行完毕后再继续处理其他单元。这通常用于那些不需要长时间运行的任务,如初始化脚本或一次性设置任务。
与其他类型(如 simple、forking、dbus、notify 和 idle)相比,oneshot 类型的服务在完成后不会保持运行状态,也不会重启。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-16 04:28 , Processed in 0.020798 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表