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日

相关文章

  • PHP代码重构方法漫谈

    下面我将详细讲解“PHP代码重构方法漫谈”的完整攻略。 什么是代码重构 代码重构是指通过修改源代码,目的是提高代码的可读性、可维护性、可扩展性和性能等方面的方法。代码重构通常不会改变软件的行为,只是修改代码本身的结构和组织。 代码重构的优点 代码重构有很多的优点,包括: 提高代码质量:重构可以将代码变得更加清晰、简洁和易于维护。 提高代码复用性:重构可以将代…

    other 2023年6月26日
    00
  • 电脑通过命令更新IP地址和DNS服务器地址的方法

    电脑通过命令更新IP地址和DNS服务器地址的方法 要通过命令行更新电脑的IP地址和DNS服务器地址,可以按照以下步骤进行操作: 打开命令提示符(Command Prompt)或者终端窗口。 输入以下命令来查看当前的网络连接信息: shell ipconfig /all 这个命令会列出当前网络连接的详细信息,包括IP地址、子网掩码、默认网关和DNS服务器地址等…

    other 2023年7月30日
    00
  • Redis Stream类型的使用详解

    Redis Stream是Redis数据库中新添加的一种数据类型,它可以理解为消息队列,用于在一个或多个消费者之间传递消息。在本文中,我们将详细讲解Redis Stream类型的使用方法,并提供两条示例说明。 什么是Redis Stream? Redis Stream是一个添加到Redis 5.0版本中的新数据类型。它被设计用于在一个或多个消费者之间传递消息…

    other 2023年6月27日
    00
  • 将字节数组转换为字符串

    在编程中,有时需要将字节数组转换为字符串。在Python中,可以使用decode()函数将字节数组转换为字符串。以下是将字节数组转换为字符串的完整攻略,包括常见问题和两示例说明。 常见问题 1. 什么是字节数组? 字节数组是一组字节的序列。在Python中,节数组可以使用bytes类型表示。 2. 什么是字符串? 字符串是一组字符的序列。在Python中,字…

    other 2023年5月9日
    00
  • ubuntu安装python3.8及新特性

    Ubuntu安装Python3.8及新特性 Python3.8是Python编程语言的最新版本,其中添加了很多新的特性和改进。如果你是Ubuntu用户,并且想要尝试使用Python3.8,那么本文将会教你如何在Ubuntu上安装Python3.8并了解一些新特性。 安装Python3.8 Python3.8可以通过apt-get命令进行安装。先更新源信息,再…

    其他 2023年3月28日
    00
  • 微信程序开发之-weixinjsbridge调用

    微信程序开发之-weixinjsbridge调用 在微信小程序开发中,weixinjsbridge是一个非常重要的工具,它可以让我们在小程序中调用微信原生API。本文将详细讲解如何使用weixinjsbridge调用微信的原生API。 weixinjsbridge简介 weixinbridge是微信小程序提的一个JavaScript库,它可以让我们在小程序中…

    other 2023年5月7日
    00
  • 四步制作Win7 SP2 ISO镜像 在不怕重装补丁多问题

    下面是完整攻略: 制作Win7 SP2 ISO镜像 1. 下载Win7 SP1 ISO镜像 首先需要去微软官网下载Win7 SP1的ISO镜像文件,可以通过以下链接访问: https://www.microsoft.com/zh-cn/software-download/windows7 在页面中选择“我已有产品密钥”,然后输入合法的Windows 7产品密…

    other 2023年6月25日
    00
  • 详解angularjs中的隔离作用域理解以及绑定策略

    详解AngularJS中的隔离作用域理解以及绑定策略 在AngularJS中,隔离作用域是一种重要的概念,它允许我们在应用程序中创建独立的作用域,以便在组件之间进行数据的隔离和通信。本文将详细介绍AngularJS中的隔离作用域的理解以及绑定策略,并提供两个示例说明。 隔离作用域的理解 隔离作用域是指在AngularJS中创建的一个独立的作用域,它与父作用域…

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