centos系统自定义服务实现

news/2024/11/25 8:33:26/

  在centos系统中,运行着很多服务,这些服务由系统systemd负责管理,通过systemctl命令可以管理服务,比如服务的启动、停止、开机自启动、挂掉重启等等。在实际项目中,自己开发的linux服务程序也可以加入到systemd管理中。

一、systemd介绍

  systemd管理主要有四种类型文件.mount,.service,.target,.wants,一般常见的linux 服务使用.service。用户将编写的systemd的管理单元(Unit)文件放在目录/usr/lib/systemd/system或/etc/systemd/system, 就可以通过systemctl命令管理服务。

二、编写服务管理单元(.service)文件

.service: 定义服务
分为[Unit],[Service],[Install]三个小节
[Unit]
Description:描述信息
After:network.target

[Service]
EnvironmentFile:通过文件定义程序运行时的环境变量
ExecStart: 程序启动命令或脚本
Restart: 程序退出或启动失败时,重启
RestartSec: 重启间隔时间,单位是秒

[Install]
Alias: 服务别名
WangtedBy: 如多用户, multi-user.target

三、实际案例

3.1 编写管理服务

my_app_manager.service

[Unit]
Description= my app for example
After=network.target[Service]
Type=simple
EnvironmentFile=/usr/local/etc/my_app.env
User=root
ExecStart=/usr/local/bin/my_app
Restart=always
RestartSec=5[Install]
Wantedby=multi-user.targetmy_app.env: 
MY_DESC="this is test"

3.2 linux程序

main.c

#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{char *value = NULL;char buf[64] = {0};printf("hello world\n");value = getenv("MY_DESC");printf("value: %p\n", value);snprintf(buf, sizeof(buf), "echo %s > /tmp/test.log", value);system(buf);while (1) {printf("loop\n");sleep(10);}return 0;
}

Makefile:

all:gcc -o my_app main.c -g
clean:rm my_app

3.3 服务安装

cp my_app_manager.service /etc/systemd/system/
cp ./example/my_app /usr/local/bin/
cp my_app.env /usr/local/etc/

3.4 服务管理

3.4.1 启动服务:

systemctl start my_app_manager.service

查看进程:
$ ps -e | grep my_app
65747 ? 00:00:00 my_app

程序中生成的test.log,内容是环境变量值
$ cat /tmp/test.log
this is test

3.4.2 查看服务状态

$ systemctl status my_app_manager.service
● my_app_manager.service - my app for example
Loaded: loaded (/etc/systemd/system/my_app_manager.service; static; vendor preset: disabled)
Active: active (running) since Fri 2023-06-09 14:32:45 CST; 29min ago
Main PID: 65747 (my_app)
Tasks: 1
CGroup: /system.slice/my_app_manager.service
└─65747 /usr/local/bin/my_app

Jun 09 14:32:45 localhost.localdomain systemd[1]: [/etc/systemd/system/my_app_manager.service:14] Unknown lvalue ‘Wantedby’ in section ‘Install’
Jun 09 14:32:45 localhost.localdomain systemd[1]: Started my app for example.

3.4.3 停止服务

systemctl stop my_app_manager.service

3.4.4 杀掉服务进程,服务自动重启

[root@localhost centos_service]# ps -e | grep my_app
65747 ? 00:00:00 my_app
[root@localhost centos_service]# kill 65747
[root@localhost centos_service]# ps -e | grep my_app
[root@localhost centos_service]# ps -e | grep my_app
[root@localhost centos_service]# ps -e | grep my_app
[root@localhost centos_service]# ps -e | grep my_app
66461 ? 00:00:00 my_app

3.4.5 允许/禁止开机自启动

systemctl enable/disable my_app_manager.service


http://www.ppmy.cn/news/375933.html

相关文章

音频格式转换器哪个好?建议收藏这两个转换器

在手机上&#xff0c;我们可以随时随地听自己喜欢的歌曲&#xff0c;不过难免会遇到播放器不支持该音频格式播放的情况。这时候如果还想听音频的话&#xff0c;就需要进行音频格式的转换了。那有什么手机mp3音频格式转换器呢&#xff1f;这边有几款转换器想分享给大家&#xff…

怎么把视频转换成音频?视频转音频方法分享。

怎么把视频转换成音频&#xff1f;对于从事剪辑行业的小伙伴们来说&#xff0c;背景音乐是最不可或缺的一个部分&#xff0c;很多小伙伴所使用的背景音乐也是自己制作的&#xff0c;那么在我们看到有视频的背景音乐我们特别喜欢的情况下&#xff0c;该如何去制作成我们的背景音…

两个好用免费的音频文件转换网站

以下两个网站支持均支持酷狗、网易云、QQ音乐等软件的下载的特殊音乐文件格式转为MP3格式 酷狗音乐 KGM格式 转 MP3&#xff0c;可以自行选择你所需要的格式文件来转化。 https://kgm.worthsee.com/ 网易云音乐NCM格式转MP3&#xff0c;底部也可选择其它音乐格式文件进行转化…

这3款文字转换音频的软件能在线文字转音频

在我们日常的生活中会遇到很多转换问题&#xff0c;特别是在自己需要循环播放一段语音的时候&#xff0c;大家也听过超市里或是在商场时播放的叫卖语音&#xff0c;你们以为这个是人工配音的吗&#xff1f;其实并不完全是。我们也可以通过这个音频转换工具来将文字的内容转换成…

视频怎么转音频?详细的转换步骤

视频怎么转音频&#xff1f;对于一些小伙伴来说&#xff0c;很多时候不需要使用视频文件中的视频&#xff0c;而只需要视频中的音频&#xff0c;这就涉及到了视频怎么转音频&#xff0c;视频转音频方法。很多小伙伴为了缩短转换时间&#xff0c;提升转换效率&#xff0c;大多都…

音频格式之间的转换

1. 位深之间的转换 位深度也叫采样位深&#xff0c;音频的位深度决定动态范围&#xff0c;常见的位深格式有8bit、16bit、24bit、32bit&#xff0c;而其中16bit最常见&#xff0c;8bit、16bit、32bit之间的转换可以通过ffmpeg的swr_convert函数很方便地实现转换&#xff0c;可参…

什么是音频转换?音频怎么转换?

什么是音频转换呢&#xff1f;我们的音频文件有很多格式&#xff0c;比如大家最熟悉的mp3格式&#xff0c;还有一些少见的wav、flac等格式&#xff0c;不同的应用有着兼容不同文件格式的差异&#xff0c;这就是要音频转换了&#xff0c;那么音频怎么转换呢&#xff1f;别急小编…

不同的音频格式如何相互转换?

常见的音频格式有mp3&#xff0c;wma&#xff0c;wav&#xff0c;flac&#xff0c;m4a等&#xff0c;为了在能够在更多的功放设备或者音乐播放器播放&#xff0c;就需要要转换音频格式&#xff0c;将音频转换成设备支持的格式&#xff0c;下面小编就分享一款电脑端最好用的音频…