ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

将进程注册为linux服务

2022-09-14 10:00:31  阅读:277  来源: 互联网

标签:sshd 服务 target service 启动 systemctl 注册 linux 进程


注册tomcat的systemctl服务,tomcat设置开启自启动

注意:

Linux下区分大小写;
Linux多用户多线程
Linux下每个文件和目录都有访问权限

 

配置开机自启动,注册systemctl服务

安装环境:CentOS7 64位、tomcat8
#开机自启动#、#应用该程序自启动#、#注册自启动服务#、#注册自系统服务#、#注册systemctl服务#、#注册systemd服务#、#systemd service文件详解#

注册tomcat的systemctl服务,tomcat设置开启自启动

(1)注册systemctl服务

# vim /usr/lib/systemd/system/tomcat.service

内容如下

[Unit]
#Description指定当前服务的简单描述。
Description=tomcat8网站应用服务
#After表示当前服务在network.target之后启动,可以指定多个服务,以空格隔开。
After=network.target

[Service]
#ExecStart将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。
Type=forking

# ExecStart指定启动进程时执行的命令。
# ExecReload指定当该服务被要求重新载入配置时所执行的命令。另外,还有一个特殊的环境变量 $MAINPID 可用于表示主进程的PID,例如可以这样使用:/bin/kill -HUP $MAINPID。强烈建议将 ExecReload= 设为一个能够确保重新加载配置文件的操作同步完成的命令行。
# ExecStop指定停止服务时执行的命令。
ExecStart=/home/server/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/home/server/tomcat/bin/shutdown.sh

#web服务设置私有/tmp或/var/tmp目录
PrivateTmp=true

[Install]
# “WantedBy=multi-user.target”表示当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
WantedBy=multi-user.target

(2)重新加载systemd配置文件

# systemctl daemon-reload

(3)测试服务启动、停止、重启

# systemctl start tomcat
# systemctl restart tomcat
# systemctl stop tomcat

(4)设置开机启动

# systemctl enable tomcat

 

将程序进程注册为Linux系统服务

1. 简介

将程序注册为系统服务后,可通过 systemctl 和 service 系统命令启动,查看,停止程序,并可以将程序设置为开机自启动等等。

 

将程序注册为系统服务,需要编辑xxx.service文件,并将文件存储到 /usr/lib/systemd/system/ 目录下

 

2. 常用命令

  命令格式:systemctl 动作  服务名,service  服务名 动作, 两个命令效果一样
  systemctl status xxx  查看服务状态
  systemctl start xxx   启动服务
  systemctl stop xxx     停止服务
  systemctl restart xxx   重启服务
  systemctl enable xxx   启用服务开机自启动
  systemctl disable xxx  禁止服务开机自启动
  systemctl list-units --type=service 查看所有已启动的服务
  修改xxx.service文件后,需要执行 systemctl daemon-reload 重新加载文件;

3. service 文件格式

vim /usr/lib/systemd/system/sshd.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42sPrivateTmp=true

[Install]
WantedBy=multi-user.target

 

3.1 Unit

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

  • Description:服务描述信息;

  • Documentation:文档相关信息;

  • 下面四个选项只涉及启动顺序,不涉及依赖关系;

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

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

  • Requires:表示强依赖关系,如果sshd服务启动失败或异常退出,则Requires配置的服务也必须退出;

  • Wants:表示若依赖关系,如果sshd服务启动失败或异常退出,不影响Wants配置的服务;

3.2 Service

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

3.2.1 启动类型

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

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

oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务,表明这个服务只要运行一次就行;

dbus:类似于simple,但会等待 D-Bus 信号后启动

notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务

idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合

3.2.2 启动,停止,重启命令

EnvironmentFile:环境参数配置文件,文件内部配置参数形式为key=value键值对,可以在service文件中以$key的形式引用配置项;
ExecStart:启动服务时执行的命令;
ExecReload:重启服务时执行的命令;
ExecStop:停止服务时执行的命令;
ExecStartPre:启动服务之前执行的命令;
ExecStartPost:启动服务之后执行的命令;
ExecStopPost:停止服务之后执行的命令;

3.2.3 停止模式

KillMode 表示停止服务时的方式
control-group:默认值,当前控制组里面的所有子进程,都会被杀掉
process:只杀主进程
mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none:没有进程会被杀掉,只是执行服务的 stop 命令

3.2.4 PrivateTmp

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

该目录在 /tmp目录下,目录名格式如下:

/tmp/systemd-private-66ae5e5313ba4417b83b427fddb36e47-xxx.service-s65dIw/

服务启动时创建一个目录,服务停止时删除临时目录;

启用该属性后,写临时文件时可能会写到这个目录下,需要注意一下

php-fpm临时文件路径问题(Sytemd PrivateTmp的坑)

Systemd Unit文件中PrivateTmp字段详解-Jason.Zhi

3.3 Install

定义如何安装配置文件;

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

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

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

执行 systemctl enable sshd.service 时将把 sshd.service 文件的一个符号链接保存到 /etc/systemd/system 目录下的 multi-user.target.wants 子目录中;

4. service文件模板

最简化的service模板

[Unit]
Description=simulator

[Service]
Type=simple
ExecStart=/home/chenfan/simulator/start.sh
ExecStop=/home/chenfan/simulator/stop.sh

[Install]
WantedBy=multi-user.target

 

 

https://blog.csdn.net/qq_43502523/article/details/121848200

http://t.zoukankan.com/fusheng11711-p-12893296.html

标签:sshd,服务,target,service,启动,systemctl,注册,linux,进程
来源: https://www.cnblogs.com/wq-9/p/16691975.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有