注册Linux系统服务systemctl管理

systemctl和service来管理系统服务,将程序注册为系统服务后,可能通过systemctl和service命令,来启动,关闭,重启,查看状态等管理程序

常用的systemctl的程序管理

命令格式:systemctl 动作  服务名

序号

命令行

 

1

systemctl status xxx

查看服务状态

2

systemctl start xxx

启动服务

3

systemctl stop xxx

停止服务

4

systemctl restart xxx

重启服务

5

systemctl enable xxx

启用服务开机自启动

6

systemctl disable xxx

禁止服务开机自启动

7

systemctl list-units --type=service

查看所有已启动的服务

8

systemctl daemon-reload

修改xxx.service文件后,需要执行 重新加载文件;

基本步骤:

1.编写service文件

service 结尾,一般分为3部分:【unit】、【service】、【install】

 

主要描述

关键字段

unit

此区块信息用于描述当前服务的简单描述:

Description:服务描述信息;

Documentation:文档相关信息;

After:定义sshd服务应该在哪些服务之后启动;

Before:定义sshd服务应该在哪些服务之前启动;

Requires:表示强依赖关系,如果sshd服务启动失败

或异常退出,则Requires配置的服务也必须退出;

Wants:表示若依赖关系,如果sshd服务启动失败或

异常退出,不影响Wants配置的服务;

service

此区块定义如何启动当前服务

type 字段定义启动类型等

simple:默认值,ExecStart字段启动的进程为主进程,如果启动脚本中 以 nohup & 形式启动进程时,此时启动脚本后会自动 kill 当前服务;

forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程;

启动,停止,重启命令

EnvironmentFile:环境参数配置文件,文件内部配置参数形式为key=value键值对,可以在service文件中以$key的形式引用配置项;

ExecStart:启动服务时执行的命令;

ExecReload:重启服务时执行的命令;

ExecStop:停止服务时执行的命令;

ExecStartPre:启动服务之前执行的命令;

ExecStartPost:启动服务之后执行的命令;

ExecStopPost:停止服务之后执行的命令;

停止模式

KillMode 表示停止服务时的方式

control-group:默认值,当前控制组里面的所有子进程,都会被杀掉

process:只杀主进程

mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号

none:没有进程会被杀掉,只是执行服务的 stop 命令

 

PrivateTmp

该字段用于设置服务是否使用私有的 tmp目录;

Install

定义如何安装配置文件;

 

WantedBy:表示服务所在的服务组;

WantedBy=multi-user.target 表示 sshd服务属于 multi-user.target 用户组;

multi-user.target 组里的所有服务都将开机启动;

 

实战简单编写入门:

[Unit]
Description=lsw come on

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/system_demo.sh start
ExecStop=/root/system_demo.sh stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2.编写程序脚本或文件

system_demo.sh:
#!/bin/bash
# description: service start and stop scripts
source /etc/rc.d/init.d/functions

log_success_msg(){

   action "SUCCESS! $@" /bin/true
}

#失败提示函数
log_failure_msg(){
    action  "ERROR! $@" /bin/false
}

case $1 in
start)

       log_success_msg "runing "
       /root/lsw/demo
       ;;
esac

exit 0

控制文件:

#include<stdio.h>
int main()
{ 

   while(1)
   {
      printf("helloworld");
      sleep(10);
   }
   return 0;
}

3.系统服务注册

将文件复制到/usr/lib/systemd/system/目录下,然后将可执行文件放于 /root/lsw/demo

cp  system_demo.service  /usr/lib/systemd/system/
systemctl daemon-reload 
systemctl    start  system_demo 
systemctl    status    system_demo  

效果如下:

参考:

https://www.cnblogs.com/fusheng11711/p/12893296.html

https://zhuanlan.zhihu.com/p/345709228

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Linux注册Tomcat服务,您可以使用init.d脚本或Systemd单元文件。在这两个例子中,您都需要创建一个脚本文件并进行相应的配置。 使用init.d脚本: 1. 创建一个新的脚本文件,比如tomcat。 2. 将引用中的脚本内容复制到该文件中。 3. 根据您的实际安装路径,更新脚本中的daemon_path变量。 4. 将脚本权限设置为可执行,可以使用chmod命令,例如`chmod +x tomcat`。 5. 将脚本复制到/etc/init.d目录下,例如`cp tomcat /etc/init.d/`。 6. 使用以下命令将Tomcat服务添加到系统启动项中:`chkconfig --add tomcat`。 7. 使用以下命令设置Tomcat服务的运行级别:`chkconfig tomcat on`。 8. 现在,您可以使用`service tomcat start`来启动Tomcat服务,`service tomcat stop`来停止Tomcat服务。 使用Systemd单元文件: 1. 创建一个新的单元文件,比如tomcat.service。 2. 将引用中的脚本内容复制到该文件中。 3. 根据您的实际安装路径,更新脚本中的JAVA_HOME和CATALINA_HOME变量。 4. 将文件复制到/etc/systemd/system目录下,例如`cp tomcat.service /etc/systemd/system/`。 5. 运行以下命令刷新systemd管理器:`systemctl daemon-reload`。 6. 使用以下命令启动Tomcat服务:`systemctl start tomcat`。 7. 使用以下命令停止Tomcat服务:`systemctl stop tomcat`。 8. 如果您希望Tomcat服务系统启动时自动启动,可以使用以下命令启用自动启动:`systemctl enable tomcat`。 无论您选择使用init.d脚本还是Systemd单元文件,都可以实现在Linux注册Tomcat服务。请注意,您需要确保脚本中的路径和命令与您的实际安装相匹配,并根据需要进行调整。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [tomcat注册Linux系统服务](https://blog.csdn.net/m0_54434140/article/details/122308107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Linux下将tomcat注册系统服务](https://blog.csdn.net/lyf844692713/article/details/81977022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值