[转帖]systemd写微服务启动脚本范例

systemd,服务,启动,脚本,范例 · 浏览次数 : 0

小编点评

**1.使用systemd写的服务的启动脚本模板** ``` [Unit] Description=systemd service for <联系devops获取微服务名> After=network.target[Service]Type=simpleWorkingDirectory=<微服务主目录> StandardOutput=syslogStandardError=syslogSyslogIdentifier=<联系devops获取微服务名> LimitNOFILE = 65535 ExecStart= <JAVA_HOME目录>/bin/java </span>-Xmx128M </span>-Xms128M </span>-XX:CompressedClassSpaceSize=64M </span>-XX:MaxMetaspaceSize=128M </span>-XX:MaxDirectMemorySize=64M </span>-XX:+HeapDumpOnOutOfMemoryError </span>-XX:HeapDumpPath=<微服务主目录>/jvm_dump/<联系devops获取微服务名>.heapdump </span>-XX:+UseG1GC </span>-XX:-OmitStackTraceInFastThrow </span>-jar <微服务jar包路径> --spring.profiles.active=uatExecStop=/bin/kill -SIGTERM $MAINPID[Install]WantedBy=multi-user.target ``` **2.笔者服务的实例** ``` [Unit] Description=systemd service for upms-server-bizAfter=network.target[Service]Type=simpleWorkingDirectory=/apps/server-admin/sunacwy-cockpit/upms-server/StandardOutput=syslogStandardError=syslogSyslogIdentifier=upms-server-bizLimitNOFILE = 65535ExecStart= /usr/java/bin/java </span>-Xmn1024M </span>-Xms512M </span>-XX:MetaspaceSize=128M </span>-XX:InitiatingHeapOccupancyPercent=85 </span>-XX:ParallelGCThreads=4 </span>-XX:G1HeapRegionSize=32 </span>-XX:MaxGCPauseMillis=200 </span>-XX:+UseG1GC </span>-XX:+HeapDumpOnOutOfMemoryError </span>-XX:HeapDumpPath=/apps/server-admin/sunacwy-cockpit/upms-server/jvm_dump/upms-server-biz.heapdump </span>-XX:-OmitStackTraceInFastThrow </span>-jar /apps/server-admin/sunacwy-cockpit/upms-server/upms-server-biz.jar --spring.profiles.active=uatExecStop=/bin/kill -SIGTERM $MAINPID[Install]WantedBy=multi-user.target ``` **3.systemd操作命令** ``` # systemd脚本存放位置cd /etc/systemd/system # systemd脚本的任何改动都需要重载systemctl daemon-reload # 查看状态 systemctl status upms-server-biz.service # 关闭systemctl stop upms-server-biz.service # 启动systemctl start upms-server-biz.service # 重启systemctl restart upms-server-biz.service ``` **4.为甚么建议使用systemd脚本而不是shell脚本** * **安全性:**systemd脚本可以实现更高的安全性,因为它可以被系统视为一个独立的进程,而不会与系统 shell 之间共享进程资源。 * **易用性:**systemd 脚本通常更易于阅读和维护,因为它可以更清晰地组织和使用。 * **自启动:**systemd 脚本可以实现自启动,无需像 shell 脚本一样手动执行。 * **状态管理:**systemd 可以跟踪和管理启动和停止服务的状态,确保它们按预期运行。

正文

https://blog.csdn.net/m0_46897923/article/details/125338465?spm=1001.2014.3001.5501

1.下面是一个使用systemd写的服务的启动脚本模板:

[Unit]
Description=systemd service for <联系devops获取微服务名>
After=network.target

[Service]
Type=simple
WorkingDirectory=<微服务主目录>
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<联系devops获取微服务名>
LimitNOFILE = 65535
ExecStart= <JAVA_HOME目录>/bin/java </span>
-Xmx128M </span>
-Xms128M </span>
-XX:CompressedClassSpaceSize=64M </span>
-XX:MaxMetaspaceSize=128M </span>
-XX:MaxDirectMemorySize=64M </span>
-XX:+HeapDumpOnOutOfMemoryError </span>
-XX:HeapDumpPath=<微服务主目录>/jvm_dump/<联系devops获取微服务名>.heapdump </span>
-XX:+UseG1GC </span>
-XX:-OmitStackTraceInFastThrow </span>
-jar <微服务jar包路径> --spring.profiles.active=uat
ExecStop=/bin/kill -SIGTERM $MAINPID

[Install]
WantedBy=multi-user.target

    2.下面是笔者服务的实例

    [Unit]
    Description=systemd service for upms-server-biz
    After=network.target
    

    [Service]
    Type=simple
    WorkingDirectory=/apps/server-admin/sunacwy-cockpit/upms-server/
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=upms-server-biz
    LimitNOFILE = 65535
    ExecStart= /usr/java/bin/java </span>
    -Xmn1024M </span>
    -Xms512M </span>
    -XX:MetaspaceSize=128M </span>
    -XX:InitiatingHeapOccupancyPercent=85 </span>
    -XX:ParallelGCThreads=4 </span>
    -XX:G1HeapRegionSize=32 </span>
    -XX:MaxGCPauseMillis=200 </span>
    -XX:+UseG1GC </span>
    -XX:+HeapDumpOnOutOfMemoryError </span>
    -XX:HeapDumpPath=/apps/server-admin/sunacwy-cockpit/upms-server/jvm_dump/upms-server-biz.heapdump </span>
    -XX:-OmitStackTraceInFastThrow </span>
    -jar /apps/server-admin/sunacwy-cockpit/upms-server/upms-server-biz.jar --spring.profiles.active=uat
    ExecStop=/bin/kill -SIGTERM $MAINPID

    [Install]
    WantedBy=multi-user.target

      3.systemd操作命令

      # systemd脚本存放位置
      cd /etc/systemd/system
      # systemd脚本的任何改动都需要重载
      systemctl daemon-reload
      # 查看状态
      systemctl status upms-server-biz.service
      # 关闭
      systemctl stop upms-server-biz.service
      # 启动
      systemctl start upms-server-biz.service
      # 重启
      systemctl restart upms-server-biz.service
      

        4.为甚么建议使用systemd脚本而不是shell脚本

        服务器重启时,可以做到自启动,无需像shell脚本一样必须手动执行

        文章知识点与官方知识档案匹配,可进一步学习相关知识
        云原生入门技能树首页概览7437 人正在系统学习中

        与[转帖]systemd写微服务启动脚本范例相似的内容:

        [转帖]systemd写微服务启动脚本范例

        https://blog.csdn.net/m0_46897923/article/details/125338465?spm=1001.2014.3001.5501 systemd写微服务启动脚本范例 1.下面是一个使用systemd写的服务的启动脚本模板:2.下面是笔者服务的实例3.system

        [转帖]【k8s】二、containerd的安装

        目录 前言 安装containerd 解压安装 配置成systemd任务 安装runc ​编辑 安装cni 配置containerd镜像源 containerd基本使用 拓展阅读 nerdctl工具安装及使用 整体脚本 总结 写在后面 前言 上一篇文章,我们介绍了虚拟机的基础环境以及基础的网络配置,

        [转帖systemd下默认ulimit限制的问题

        https://www.jianshu.com/p/80de33bcf451?ivk_sa=1024320u 问题 在使用systemd而不是sysvinit的系统上,/etc/security/limits.conf将不再对systemd管理的服务生效,但仍然对登录进程生效。这会导致登陆后查看ul

        [转帖]Systemd 指令

        一、由来 历史上,Linux 的启动一直采用init进程。 下面的命令用来启动服务。 $ sudo /etc/init.d/apache2 start# 或者$ service apache2 start 这种方法有两个缺点。 一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下

        [转帖]SYSTEMD 配置文件

        https://www.cnblogs.com/xiexun/p/13643952.html [Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。 Description:简短描述 Documentation:文档地址 Req

        [转帖]CentOS 7 systemd service 设置limit,不生效问题

        https://www.jianshu.com/p/1d02c97f3573 问题简述:Centos7下修改系统的最大文件打开数的时候,对系统启动的进程不生效问题详述:Centos7下需修改系统最大文件打开数为100000,进程数为50000,于是做了如下操作 说 明:此问题只出现在centos7下

        [转帖]ubuntu 时间同步- systemd-timesyncd配置

        https://www.cnblogs.com/zhangzhiwei122/p/15886433.html 修改配置 root@HP:~# vi /etc/systemd/timesyncd.conf[Time]NTP=ntp.ntsc.ac.cn cn.ntp.org.cn ##只设置NTP这行

        [转帖]如何优雅的使用 Systemd 管理服务

        https://zhuanlan.zhihu.com/p/271071439 背景:我们在构建 Kubernetes 容器化平台时,会在节点上部署各种 agent ,虽然容器化当道的今天很多程序可以直接采用 docker 方式进行运行,但我们在整个集群内部仍然大量使用了 systemd 来管理基础服

        [转帖]ubuntu 时间同步-安装ntp服务器

        原文链接: https://www.idcyunwei.org/post/235.html 姊妹篇:ubuntu 时间同步- systemd-timesyncd配置 在Ubuntu 18.04服务器上安装和配置NTP服务器 下面是安装NTP服务器并进行必要修改以在网络中实现所需时间同步的分步过程。

        [转帖]CentOS7上systemctl的使用

        https://www.cnblogs.com/yeyuzhuanjia/p/14676182.html CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。 1、原来的 service 命令