首页 > 系统相关 >`systemctl` 启动单个服务,其中包含多个进程

`systemctl` 启动单个服务,其中包含多个进程

时间:2023-05-26 20:11:36浏览次数:44  
标签:实例 服务 service sudo systemctl 单个 进程 your

要使用 systemctl 启动单个服务,其中包含多个进程,你可以使用 Systemd 的 template 机制。以下是使用 Systemd 'template' 以创建一个可同时启动多个进程的服务单元文件的过程:

  1. 为你的服务创建一个 template 服务单元文件。服务单元文件通常位于 /etc/systemd/system 目录中。使用以下命令创建一个 template 服务单元文件:

    sudo touch /etc/systemd/system/your-service@.service
    

    注意 @ 符号,它表示这是一个模板服务文件。根据实际服务名称替换 your-service

  2. 编辑 template 服务单元文件。使用文本编辑器(如 nanovim)打开服务单元文件,并为该服务配置适当的设置。

    sudo nano /etc/systemd/system/your-service@.service
    

    添加以下内容,根据您的实际需求进行修改:

    [Unit]
    Description=Description of your service instance %i
    After=network.target
    
    [Service]
    User=user-to-run-the-service-instance
    Group=group-to-run-the-service-instance
    ExecStart=/path/to/your/program --program-options instance-%i
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    DescriptionUserGroupExecStart 替换为适当的值。请特别注意,我们添加了 %i 标记。这将在启动服务时替换为实例编号。

  3. 重新加载 Systemd 配置:

    sudo systemctl daemon-reload
    
  4. 使用 systemctl 启动具有多个进程的单个服务:

    sudo systemctl start your-service@1 your-service@2 your-service@3
    

    在上述命令中,将 your-service 替换为您在步骤 1 中创建的模板服务文件的名称,并使用所需的实例数量。这将启动多个进程,每个进程都具有不同的实例编号。

现在,你已经配置了一个包含多个进程的服务,并使用 systemctl 将它们同时启动。使用此方法,你可以根据需要动态地启动、停止或重启各个进程实例。

要在系统启动时自动运行这些服务实例,请分别为每个指定实例使用如下命令:

sudo systemctl enable your-service@1
sudo systemctl enable your-service@2
sudo systemctl enable your-service@3

替换 your-service 并指定所需实例号。

标签:实例,服务,service,sudo,systemctl,单个,进程,your
From: https://www.cnblogs.com/xzlive/p/17435710.html

相关文章

  • solidworks列出单个文件的焊接清单
    solidworks首先打开一个零件,然后运行此宏,此宏将焊接清单信息打印到立即窗口:OptionExplicitDimswAppAsSldWorks.SldWorksSubmain()SetswApp=Application.SldWorksDimswModelAsSldWorks.ModelDoc2SetswModel=swApp.ActiveDocIfs......
  • vue3 后台返回数据没有返回字段是true和false 值的时候,循环数组,点击单个元素单个元素
    最原始的写法<template><div><divv-for="(item,index)initems":key="item.id":class="{active:item.active}"@click="handleClick(item)">{{item.text}}div>div>但是不是所有的后端都会返回字段的值是true和false ......
  • linux的父进程向子进程发kill信号例子以及对子进程的状态进行判断
    先看一个父进程向子进程发kill信号例子:#include<stdio.h>#include<unistd.h>#include<signal.h>#include<sys/types.h>#include<sys/wait.h>intmain(intargc,constchar*argv[]){pid_tpid;intstatus;pid=fork();if(......
  • 提高linux对最大进程数和最大打开文件描述符数的限制
    打开/etc/security/limits.conf文件在下面加入如下两行,其中wacos是用户名,*可以代表所有用户wacos     -   nproc     20000wacos     -   nofile     65536noproc代表最大进程数nofile代表最大文件打开数然后在命令行输......
  • Linxu解决systemctl启动服务失败,Error: No space left on device
    查看磁盘空间实际占用情况查看磁盘inodes占用情况这两部发现都没有问题。要是哪里发现被沾满了,直接删除解放空间。此篇是讲另一种情况。查看默认inotify的max_user_watches值[root@VM-4-4-centosnginx]#sysctlfs.inotifyfs.inotify.max_queued_events=16384fs.inotif......
  • Linux下如何获取程序的进程号?
    读取端口号对应的进程号:PORT=10086netstat-tnlp|grep$PORT|grep-vgrep|grep-vkill|awk'{print$7}'|cut-d/-f1在启动脚本中写入进程号到文件tpid:echo$!>tpid读取文件中的进程号:pid=$(cattpid)......
  • 项目进程优化处理
     启用网络需在进程中启用,而和外面流程不相关,就出现信息更新滞后的情况,为此,做一些调查,将改变调用进程方式来实现。lHandler 通过Handler你可以发布或者处理一个消息或者是一个Runnable的实例。没个Handler都会与唯一的一个线程以及该线程的消息队列管理。当你创建一个新的Hand......
  • Linux查看端口被那个进程占用
    netstat-antunlp|grep1521......
  • 在命令行下使用Nuget.exe下载单个包,及其所有依赖的包
    #下载单个包,及其所有依赖的包.\nuget.exeinstall<package_name>-SolutionDirectory<save_path>-PackageSaveModenupkg#根据packages.config文件直接下载Nuget包.\nuget.exerestore<packages.config文件所在目录>-DirectDownload-PackagesDirectory<Nuget包存储路......
  • AI智能视频技术EasyCVR服务正常启动,日志打印实际无进程该如何解决?
    EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也能接入AI智能分析的能力,包括人脸检测、车辆检测、烟火检测、安全帽检测、区域入......