当前位置: 首页 > news >正文

linux 查看进程启动方式

  

目录

如果是systemd管理的服务怎么快速找到对应的服务器呢

什么是CGroup

查找进程对应的systemd服务

方法一:查看 /proc//cgroup 文件

方法二:使用 ps 命令结合 --cgroup 选项

方法三:systemd-cgls

关于 system.slice 与 user.slice

方法四:查看文件

查找非system服务进程

步骤1 -判断是否是system服务进程

步骤2 -判断服务所在目录,查找启动脚本

步骤3 -判断是否将启动命令/脚本添加至开启启动,或者计划任务crond检测启动

步骤4 - 获得帮助


      当一个老的服务出了问题或者是因为机房搬迁等等原因 需要重启时,没有对应的文档手册,怎么找到启动方式呢?

一般的方式是 ps/proc/PID/systemd-cglshistory 查看相关启动目录和文件 等等。

例如: 一个看起来很像命令行启动的,bin文件加指定后台的参数(-q、 -D、 --deamon等),但其实是个systemd管理的服务。

[root@nessus ~]# ps -ef|grep -v grep  |grep nessus
root      5740     1  0 Jun13 ?        00:00:00 /opt/nessus/sbin/nessus-service -q
root      5741  5740  0 Jun13 ?        00:08:59 nessusd -q

如果是systemd管理的服务怎么快速找到对应的服务器呢

先来看看 systemctl status 命令
[root@tserver121 ~]# systemctl status  docker.service 
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: active (running) since Wed 2023-06-21 14:55:28 CST; 11 months 24 days agoDocs: https://docs.docker.comMain PID: 35647 (dockerd)CGroup: /system.slice/docker.service└─35647 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Loaded:

  •  loaded 表示该服务已加载。
  •  /usr/lib/systemd/system/docker.service 是该服务的单元文件路径。
  •  disabled 表示该服务被设置为开机自启动。
  •  vendor preset: disabled 表示该服务的供应商预设值是禁用的,但已经被手动启用。

Active:  

  •  active (running) 运行状态

Main PID: 35647 (dockerd)  

  •  主进程 与进程名

CGroup:

  •  /system.slice/docker.service   表示该服务属于 system.slice 控制组,服务名为docker.service

很明显的看到docker 进程 是由 docker.service 来管理启动的 启动文件在/usr/lib/systemd/system/docker.service

有些服务是存在依赖服务的,所以需要找到提供正确的启动方式
通过查看/usr/lib/systemd/system/docker.service 还能看到还有些依赖服务
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service

什么是CGroup

控制组(cgroup)是一种用于限制、记录和隔离进程资源使用(如 CPU、内存、磁盘 I/O 等)的机制,每个进程都有 cgroup来管理。

查找进程对应的systemd服务

所以对于systemctl 来管理的进程,能很快的通过 cgroup找到对应的服务
[root@nessus ~]# ps -ef|grep -v grep  |grep nessus
root      5740     1  0 Jun13 ?        00:00:00 /opt/nessus/sbin/nessus-service -q
root      5741  5740  0 Jun13 ?        00:08:59 nessusd -q

对于上面这个例子可以使用下面方法

方法一:查看 /proc/<PID>/cgroup 文件
[root@nessus nessus]# cat /proc/5740/cgroup
11:memory:/
10:devices:/system.slice
9:blkio:/
8:net_prio,net_cls:/
7:cpuset:/
6:hugetlb:/
5:pids:/
4:perf_event:/
3:cpuacct,cpu:/
2:freezer:/
1:name=systemd:/system.slice/nessusd.service

1:name=systemd:/system.slice/nessusd.service 表示进程 cgroup 控制下,归属于服务nessusd.service
其他解释 :
memory:控制和监控内存使用。
blkio:控制和监控块设备 I/O(如硬盘)。
cpuset:将进程分配到特定的 CPU 和内存节点。
devices:/system.slice 控制进程对设备的访问权限。 归属于system.slice服务
freezer:暂停和恢复进程。
net_cls 和 net_prio:控制和监控网络流量。
pids:限制和监控进程数目。

方法二:使用 ps 命令结合 --cgroup 选项
ps -o pid,cgroup -p <PID>
[root@nessus nessus]# ps -o pid,cgroup -p 5740PID CGROUP5740 10:devices:/system.slice,1:name=systemd:/system.slice/nessusd.service
方法三:systemd-cgls
用于显示当前系统中的控制组(cgroups)层次结构及其包含的进程 很快的区别是否是systemd服务
├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
├─user.slice
│ └─user-0.slice
│   └─session-57.scope
│     ├─7021 /export/devops/bin/python3 /export/devops/bin/gunicorn -c gunicorn.py tools.wsgi:application --reload -D
│     ├─7023 /export/devops/bin/python3 /export/devops/bin/gunicorn -c gunicorn.py tools.wsgi:application --reload -D
│     ├─7024 /export/devops/bin/python3 /export/devops/bin/gunicorn -c gunicorn.py tools.wsgi:application --reload -D
│     ├─7025 /export/devops/bin/python3 /export/devops/bin/gunicorn -c gunicorn.py tools.wsgi:application --reload -D
│     └─9329 /export/devops/bin/python3 /export/devops/bin/gunicorn -c gunicorn.py tools.wsgi:application --reload -D
└─system.slice└─nessusd.service├─5740 /opt/nessus/sbin/nessus-service -q└─5741 nessusd -q
关于 system.slice 与 user.slice

slice是控制组的一种类型,用于组织和划分系统资源。常见的包括 system.slice 和 user.slice。

    • system.slice:通常是由systemd 启动和管理。
    • user.slice:通常是由用户会话启动和管理,俗称命令行启动。
方法四:查看文件

systemd 的文件主要在/usr/lib/systemd/system/etc/systemd/system

service(centos 6)的文件主要在 /etc/init.d/

通过grep命令 获取关键字所在文件

查找非system服务进程

不一定100% 能找到原服务所提供的命令或者脚本启动。需要靠用户的行为习惯,但需要验证与进程是否一致。
[root@tserver121 redis]# ps -ef |grep -v grep |grep redis
root      99667      1  0 19:27 ?        00:00:00 ./bin/redis-server 10.3.246.108:16379
步骤1 -判断是否是system服务进程
[root@tserver121 redis]# ps -o pid,cgroup  -p 99667PID CGROUP99667 11:pids:/user.slice,8:blkio:/user.slice,6:cpuacct,cpu:/user.slice,5:memory:/user.slice,3:devices:/user.slice,1:name=systemd:/user.slice/user-0.slice/session-682120.scope
是由user.slice 管理的, 非system服务进程。
步骤2 -判断服务所在目录,查找启动脚本
[root@tserver121 redis]# cd  /opt/app/redis/
[root@tserver121 redis]# ./bin/redis-server  ./etc/redis.conf   #启动命令[root@tserver121 redis]# ll /proc/99667/
lrwxrwxrwx 1 root root 0 Jun 14 19:33 cwd -> /data/redis
lrwxrwxrwx 1 root root 0 Jun 14 19:33 exe -> /opt/app/redis/bin/redis-server
cwd 为程序的工作目录,exe为进程的可执行文件(同级目录),或者是exe 指向的程序的项目根目录 /opt/app/redis
一般而言执行启动操作是会先 cd到以上的相关目录下,再执行相关的启动操作,会留下相关的启动文档 或者脚本,比方说service.sh/start.sh 等等
步骤3 -判断是否将启动命令/脚本添加至开启启动,或者计划任务crond检测启动

systemd 的文件主要在/usr/lib/systemd/system/etc/systemd/system

service(centos 6)的文件主要在 /etc/init.d/

通过grep命令 获取关键字所在文件

计划任务crond:对应启动用户的任务查看

一般比较重要的服务器都需要添加到开机自启动中, 良好的用户习惯能减少很多麻烦。

步骤4 - 获得帮助
1. history 命令历史:一般线上的服务器,操作较少,对应的相关命令也可能会保留的时间较长,当然也可能有用户处理后清理命令历史的策略
2. 互联网:如果是比较正规的应用,网上一般都能查到,比如: nessusd
3. 审计:如果是平台下发的命令,可以从审计中查找

相关文章:

linux 查看进程启动方式

目录 如果是systemd管理的服务怎么快速找到对应的服务器呢 什么是CGroup 查找进程对应的systemd服务 方法一&#xff1a;查看 /proc//cgroup 文件 方法二&#xff1a;使用 ps 命令结合 --cgroup 选项 方法三&#xff1a;systemd-cgls 关于 system.slice 与 user.slice …...

基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…...

第2章 Android应用的界面编程

&#x1f308;个人主页&#xff1a;小新_- &#x1f388;个人座右铭&#xff1a;“成功者不是从不失败的人&#xff0c;而是从不放弃的人&#xff01;”&#x1f388; &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f3c6;所属专栏&#xff1…...

springboot学习-图灵课堂-最详细学习

springboot-repeat springBoot学习代码说明为什么java -jar springJar包后项目就可以启动 配置文件介绍 springBoot学习 依赖引入 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.target>8</mav…...

Total CAD Converter与Total Excel Converter软件分享

1.软件介绍 Total CAD Converter Total CAD Converter 是一款功能强大的工具&#xff0c;能够将 CAD 文件转换为多种格式&#xff0c;如 PDF、TIFF、JPEG、BMP、WMF、PNG、DXF、BMP、CGM、HPGL、SVG、PS 和 SWF 等。其支持的源格式丰富多样&#xff0c;包括 dxf、dwg、dwf、d…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 启动多任务排序(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 启动多任务排序(200分) 🌍 评测功能需要订阅专栏后私信联系…...

【会议征稿,JPCS出版】第三届电力系统与能源技术国际学术会议(ICPSET 2024,7月5-7)

第三届电力系统与能源技术国际学术会议&#xff08;ICPSET 2024&#xff09;将于2024年7月5-7日在杭州举办。由浙江水利水电学院电机产业学院主办&#xff0c;AEIC学术交流中心承办&#xff0c;湖州市南浔创新研究院、南浔区科技局&#xff08;科协&#xff09;协办 。会议主要…...

【机器学习300问】118、循环神经网络(RNN)的基本结构是怎样的?

将讲解循环神经网络RNN之前&#xff0c;我先抛出几个疑问&#xff1a;为什么发明循环神经网络&#xff1f;它的出现背景是怎样的&#xff1f;这些问题可以帮助我们更好的去理解RNN。下面我来逐一解答。 一、循环神经网络诞生的背景 循环神经网络&#xff08;RNN&#xff09;的…...

loveqq-framework 和 thymeleaf 整合遇到的 th:field 的坑,原来只有 spring 下才有效

相信大家在使用 thymeleaf 的时候&#xff0c;绝大部分都是和 springboot 一块儿使用的&#xff0c;所以 th:field 属性用的很舒服。 但实际上&#xff0c;th:field 只有在 spring 环境下下有用&#xff0c;单独的 thymeleaf 是不支持的&#xff01; 为什么我知道呢&#xff…...

hugging face:大模型时代的github介绍

1. Hugging Face是什么&#xff1a; Hugging Face大模型时代的“github”&#xff0c;很多人有个这样的认知&#xff0c;但是我觉得不完全准确&#xff0c;他们相似的地方在于资源丰富&#xff0c;github有各种各样的软件代码和示例&#xff0c;但是它不是系统的&#xff0c;没…...

如何快速绘制logistic回归预测模型的ROC曲线?

临床预测模型&#xff0c;也是临床统计分析的一个大类&#xff0c;除了前期构建模型&#xff0c;还要对模型的预测能力、区分度、校准度、临床获益等方面展开评价&#xff0c;确保模型是有效的&#xff01; 其中评价模型的好坏主要方面还是要看区分度和校准度&#xff0c;而区分…...

实现具有多个实现类的接口并为每个实现类定义一个名字的方法

在Java中&#xff0c;实现具有多个实现类的接口并为每个实现类定义一个名字的方法&#xff0c;可以通过使用工厂模式或服务定位器模式来完成。以下是使用工厂模式的一个示例&#xff1a; 定义接口和实现类 首先&#xff0c;定义一个接口和多个实现类&#xff1a; // 接口 publ…...

Linux解压缩命令

文章目录 前言1. tar - 打包和压缩文件2. gzip - 压缩文件3. gunzip - 解压缩gzip文件4. bzip2 - 压缩文件5. unzip - 解压缩zip文件6. zip - 压缩文件为zip格式7. 7z - 7-Zip压缩工具8. unrar - 解压缩RAR文件 前言 解压缩文件在Linux中是常见的任务&#xff0c;以下是一些常…...

如何在 Ubuntu 14.04 上使用 Iptables 实现基本防火墙模板

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 实施防火墙是保护服务器的重要步骤。其中很大一部分是决定强制执行对网络流量的限制的个别规则和策略。像 iptables 这样的防火墙…...

jasypt对yml文件进行加密解密

目录 0.背景 1.依赖 2.yml文件 3.加密操作 0.背景 在日常开发中&#xff0c;我们一般会把账号密码以及一些用到的各种第三方服务的Access_Key都放入yml文件中&#xff0c;这时就有必要对yml文件进行加密处理了&#xff0c; jasypt是一款简单的对yml加密的工具 1.依赖 &l…...

vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务

本篇介绍一下使用vue3-openlayers加载天地图切片&#xff0c;三种方法&#xff1a; 使用tianditu&#xff08;ol-source-tianditu内部实现其实用的wmts&#xff09;使用wmts&#xff08;ol-source-wmts&#xff09;使用xyz&#xff08;ol-source-xyz&#xff09; 1 需求 vue…...

npm、yarn、pnpm 最新国内镜像源设置和常见问题解决

1. npm 设置国内镜像源 1.1 镜像源概述 镜像源是软件包管理工具用来下载和安装软件包的服务器地址。由于网络原因&#xff0c;直接使用官方源可能会导致速度慢或连接失败的问题。国内镜像源可以提供更快的访问速度和更稳定的连接。 1.2 镜像源的选择 国内有许多可用的npm镜…...

Qt Object:智能即时聊天室项目

目录 1.项目介绍 2.设计思路 3.Pro文件配置 4.项目演示 5.项目开源 项目介绍 智能即时聊天室系统&#xff08;AIChatProject&#xff09;是一个高效、灵活的即时通讯解决方案。它融合了百度的开源大型语言模型——文心一言&#xff0c;通过API接口实现深度集成。系统专为聊天和…...

php,python aes加密反解

1. python版本 import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpadclass AESUtilCBC:def __init__(self, key, iv):self.key key.encode(utf-8)self.iv iv.encode(utf-8)self.pad_length AES.block_sizedef encrypt(self, data):try…...

基于Java学生选课管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...