CentOS 7下systemd管理的详解

CentOS 7下systemd管理的详解

简介

systemd是Linux系统管理和初始化的系统和服务管理器。它是CentOS 7及以上版本的默认init系统。它允许用户管理和配置系统服务,提供更好的管理和日志功能。本文将详细讲解CentOS 7下如何使用systemd进行服务管理。

systemd 的基本管理命令

以下是常用的systemd管理命令:

启动服务

systemctl start service-name

停止服务

systemctl stop service-name

重启服务

systemctl restart service-name

查看服务状态

systemctl status service-name

开机启动服务

systemctl enable service-name

取消开机启动服务

systemctl disable service-name

systemd 服务文件格式

systemd 服务文件被存放在 /etc/systemd/system/ 目录下。一个服务文件通常由以下几个块组成:

[Unit]

描述了服务的基本信息,包括服务名、服务描述、依赖关系等。以下是一个示例:

[Unit]
Description=My Service
After=network.target

[Service]

描述了服务的启动信息,包括服务执行的命令、运行环境、工作目录等。以下是一个简单的示例:

[Service]
Type=simple
ExecStart=/usr/local/bin/my-service

[Install]

描述服务的安装信息,包括要安装的路径等。以下是一个简单的示例:

[Install]
WantedBy=multi-user.target

示例

安装一个简单的服务

假设我们有一个简单的服务,该服务只是输出一行文本,我们可以使用以下步骤在CentOS 7中创建一个systemd服务:

  1. /usr/local/bin 目录下创建一个名为 my-service 的文件,其中包含以下代码:

#!/bin/bash
echo "Hello, World!"

  1. /etc/systemd/system/ 目录下创建一个 my-service.service 文件,其中包含以下代码:

```
[Unit]
Description=My Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/my-service

[Install]
WantedBy=multi-user.target
```

  1. 重新加载 systemd daemon

systemctl daemon-reload

  1. 启动 my-service 服务并查看状态

systemctl start my-service
systemctl status my-service

输出应该是:

```
● my-service.service - My Service
Loaded: loaded (/etc/systemd/system/my-service.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-05-05 17:36:25 CST; 8min ago
Main PID: 26470 (my-service)
CGroup: /system.slice/my-service.service
└─26470 /bin/bash /usr/local/bin/my-service

May 05 17:36:25 centos7 systemd[1]: Started My Service.
May 05 17:36:25 centos7 bash[26470]: Hello, World!
```

系统已经成功加载了my-service服务,并且运行良好。

安装并启动一个Node.js应用程序

如果你有一个Node.js应用程序,并希望将其作为系统服务来管理,可以采用以下步骤:

  1. /opt/my-app 目录下创建一个你的Node.js应用程序,确保程序拥有可执行权限。

  2. 创建一个名为 my-app.service 的文件,其中包含以下代码:

```
[Unit]
Description=My Node.js App

[Service]
ExecStart=/usr/bin/node /opt/my-app/app.js
WorkingDirectory=/opt/my-app/
Restart=always
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
```

  1. 重新加载 systemd daemon

systemctl daemon-reload

  1. 启动 my-app 服务并查看状态

systemctl start my-app
systemctl status my-app

输出应该是:

```
● my-app.service - My Node.js App
Loaded: loaded (/etc/systemd/system/my-app.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-05-05 17:36:25 CST; 8min ago
Main PID: 26470 (node)
CGroup: /system.slice/my-app.service
└─26470 /usr/bin/node /opt/my-app/app.js

May 05 17:36:25 centos7 systemd[1]: Started My Node.js App.
```

这时应用程序已经作为系统服务运行,并将在系统启动时启动。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS 7下systemd管理的详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • CMD 运行指令

    CMD是Windows操作系统的命令行工具,它可以通过输入指令来执行各种操作,包括文件管理、网络连接、系统配置等。以下是运行CMD指令的完整攻略: 打开CMD 在Windows操作系统中,打开CMD的方法有以下几种: 使用键盘快捷键组合“Win+R”,弹出运行窗口后输入“cmd”命令,回车即可打开CMD。 在任务栏的搜索框中输入“cmd”,点击打开即可。 在…

    other 2023年6月26日
    00
  • Java访问Hadoop分布式文件系统HDFS的配置说明

    下面就是Java访问Hadoop分布式文件系统HDFS的配置说明的完整攻略。 配置说明 步骤一:Hadoop环境准备 在Java项目中使用HDFS时需要引入Hadoop的相关jar包,推荐使用Apache的Maven来管理jar包依赖。Maven会自动下载并添加依赖的jar包。 步骤二:配置HDFS连接参数 在Java程序中连接HDFS需要指定HDFS的连接…

    other 2023年6月25日
    00
  • python生成guid

    Python生成GUID的完整攻略 GUID(全局唯一标识符)是一种用于标识对象的标准格式,它通常由32个十六进制数字组成可以用于唯一标识对象。在Python中,可以使用uuid模块来生成GUID。本文将介绍Python生成GUID的完整攻略,包括两个示例说明。 安装uuid模块 在Python中,可以使用uuid模块生成GUID。如果您的Python环境中…

    other 2023年5月9日
    00
  • zgc介绍

    ZGC介绍 ZGC是一款由Oracle开发的垃圾回收器,专门用于处理大内存的Java应用程序。它采用了分代垃圾收算,可以在数毫秒内处理数百GB的内存。本文将详细介绍ZGC的特点、优势和使用方法,并提供两个示例说明。 特点 ZGC的主要特点如下: 低延迟:ZGC的垃圾回收时间通常超过10ms,可以不影响应用程序性能的情况下回收大内存。 大内存:ZGC可以处理数…

    other 2023年5月7日
    00
  • 理解Golang中的数组(array)、切片(slice)和map

    当你开始学习Golang编程语言时,数组(array)、切片(slice)和map是你需要掌握的三个主要数据结构。这些数据结构在Golang中被广泛使用,并且在许多实际的应用程序中都扮演着关键的角色。在这篇攻略中,我们将深入讨论这三种数据结构,并提供一些示例说明。 数组(array) 在Golang中,数组是一种定长的数据结构,它们是由相同类型的元素按一定顺…

    other 2023年6月25日
    00
  • .NET 线程基础的使用介绍

    .NET 线程基础的使用介绍 线程基本概念 在计算机中,线程(Thread)是指程序执行流的最小单元,它是进程(Process)的一个子集,是操作系统分配处理器时间的基本单位。在 .NET 中,线程是由 System.Threading.Thread 类代表的。 创建线程 在 .NET 中,创建一个新线程的基本方法是实例化 Thread 类并指定一个方法来启…

    other 2023年6月27日
    00
  • windows下es安装教程

    Windows下ES安装教程 Elasticsearch是一个高度可扩展的开源搜索与分析引擎,被广泛应用于日志分析、全文检索等应用场景中。本文将带领读者了解如何在Windows系统下安装和配置Elasticsearch。 前置条件 在进行ES安装前,需要确保以下环境已经准备完成: Java JDK 8 (推荐使用OpenJDK) 若您的电脑没有安装以上环境,…

    其他 2023年3月29日
    00
  • Android仿ios加载loading菊花图效果

    以下是 Android 仿 iOS 加载 loading 菊花图效果的完整攻略。 1. 了解需求及基本原理 在开发过程中,我们需要制作一个和 iOS 类似的加载 loading 菊花图效果。实现这个效果大体可以分成两个步骤: 定义布局文件,通过布局文件设置 loading 菊花图图像的大小和位置; 通过代码控制 loading 菊花图的显示和隐藏,实现动态效…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部