service文件理解

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: service文件理解
[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target

[Unit]:控制单元

Description:单元信息的描述

Documentation:相关的文档信息连接

Wants:本单元启动了,它“想要”的单元也会被启动。但是如果“想要”的单元启动不成功,对本单元没有影响。

Requires: 本单元启动了,那么它“需要”的单元也会被启动; 它“需要”的单元被停止了,它自己也不能正常使用。但是请注意,这个设定并不能控制本单元与它“需要”的单元的启动顺序,即 Systemd 不是先启动 Requires 再启动本单元,而是在本单元被激活时,并行启动两者。如果 Requires 先启动成功,那样本单元才会启动成功; 如果 Requires 启动得慢,那本单元就会失败。所以为了系统的健壮性,不建议使用Requires,而建议使用 Wants 。可以使用多个 Requires。

Conflicts:如果冲突单元启动了,那本单元就不能正常启动。

OnFailure:如果本单元失败了,那么启动其它的什么单元。

Before/After:要是一个单元 Before 另一个服务,那么在并行启动时(Systemd 总是用进程 0 并行启动所有东西,然后通过这两个标记来二次等待排序),那另一个服务这时就会等这个服务先启动并返回状态,注意是先启动而不是启动成功,因为失败也是一种状态,一定要成功才启动另一个服务是通过依赖关系定义的。反之 After 亦然。

定义服务本体 [service]


安装服务 [install]

这可能有点绕,我服务文件都弄好了,放到 /etc/systemd/system(供系统管理员和用户使用),/usr/lib/systemd/system(供发行版打包者使用)了,不就是安装好了嘛。

这里说的是一种内部状态,默认你放对位置它显示的是 disabled,unloaded,所以我们要在 Systemd 内部对它进行一下 load,没人要的东西是不需要安装的(我们不收渣渣),所以我们要告诉 Systemd 它是有人要的,被谁要。一般都是被

[Install]

WantedBy=multi-user.target


要(multi-user.target 表示多用户系统好了,简单理解就是你可以登入了)。这样在 multi-user.target 启用时,我们的服务也就会被启用了。

[Install] 部分下除了 WantedBy 还有两种属性,分别是:

  • Alias= 给你自己的别名,这样 systemctl command xxx.service 的时候就可以不输入完整的单元名称。比如你给 NetworkManager 一个别名叫 Alias=nm,那你就可以 systemctl status nm.service 查看实际是 NetworkManager.service 的服务了。
  • Also= 安装本服务的时候还要安装别的什么服务。比如我们的 He.net 脚本按理应该需要一个 iproute2.service 作为 also,但是 iproute2 实际上不需要 systemd 控制,所以就没写。它和 [Unit] 定义里面的依赖关系相比,它管理的不是运行时依赖,而是安装时。安装好了之后启动谁先谁后,谁依赖谁,和 Also= 都没有关系。


参考  https://blog.csdn.net/djskl/article/details/46671453,如有侵权,麻烦联系 joshualwork@163.com 删除。

相关文章
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
369 3
Hadoop集群配置https实战案例
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
996 2
|
8月前
|
人工智能 数据安全/隐私保护
自学能力与生成式人工智能(GAI)认证:解锁未来竞争力的教育密码
在现代社会,教育的核心在于培养自学能力,使孩子能够应对未来挑战。科技发展与AI技术的普及改变了职场格局,预计到2030年,8亿岗位将被自动化取代。因此,培养终身学习意识至关重要。生成式人工智能(GAI)认证成为评估自学能力和专业技能的重要工具,助力求职者抓住新机遇。教育应注重激发学生兴趣,培养自主学习与解决问题的能力,结合GAI认证,共同构筑未来之路。
|
11月前
|
人工智能 监控 安全
阿里云 Elastic Enterprise 正式上线!
阿里云正式发布Elastic Enterprise 版!欢迎前来体验!
172 2
|
JSON 前端开发 JavaScript
【简单粗暴】如何使用 React 优化 AG 网格性能
【简单粗暴】如何使用 React 优化 AG 网格性能
286 3
|
JSON 前端开发 Java
教会你怎么返回json来完成需求
教会你怎么返回json来完成需求
257 0
|
存储 C语言 C++
D : DS查找—二叉树平衡因子
这篇文章介绍了如何计算二叉树的平衡因子,并提供了C++代码实现,用于根据二叉树的数组存储形式,计算并输出每个节点的平衡因子。
|
存储 负载均衡 定位技术
现代数据库系统中的数据分片策略与优化
数据分片在现代数据库系统中扮演着关键角色,特别是在面对海量数据和高并发访问的情况下。本文探讨了数据分片的基本概念、常见的分片策略(如水平分片与垂直分片)、以及如何通过优化和选择合适的分片策略来提升数据库系统的性能和可扩展性。
|
安全 网络协议 算法
为什么我们使用安全套接字层(SSL)
【8月更文挑战第24天】
202 0