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. 审计:如果是平台下发的命令,可以从审计中查找

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux权限提升四

➢ Linux系统提权-Web&用户-数据库类型 ➢ Linux系统提权-Web&用户-Capability能力 ➢ Linux系统提权-普通用户-LD_Preload加载 #Linux系统提权-Web&用户-数据库类型 https://www.vulnhub.com/entry/raven-2,269/ 1、信息收集&#xff1a; http://192.168.139.155/…

基于Django和Vue的商城管理系统

文章目录 前言一、系统运行结果二、相关技术简介三、系统设计四、系统测试五、总结 前言 近年来&#xff0c;互联网技术的飞速发展极大地改变了人们的生活方式。网络购物作为一种新的购物模式&#xff0c;因其方便、快捷、选择多样等优点&#xff0c;迅速普及。为了满足人们日…

会声会影2023软件怎么下载安装? 【详细安装图文教程】

简介&#xff1a; 会声会影&#xff08;Corel VideoStudio&#xff09;为加拿大Corel公司发布的一款功能丰富的视频编辑软件。会声会影2023简单易用&#xff0c;具有史无前例的强大功能&#xff0c;拖放式标题、转场、覆叠和滤镜&#xff0c;色彩分级、动态分屏视频和新增强的…

Ubuntu 20.04 LTS WslRegisterDistribution failed with error: 0x800701bc

1.以管理员身份运行powershell&#xff0c;输入&#xff1a;wsl --update&#xff0c; 2.重新打开ubuntu即可。

在线装X平台源码

在线装X平台源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 (function() {var host window.location.hostname;var element document.createElement(script);var firstScript document.getElementsByTagName(script)[0];var url https://quantcast.mgr.consens…

3.4.马氏链-随机游走的常返性

随机游走的常返态 1. 随机游走常返性定义1.1. 随机游走常返值和可能集1.2. 随机游走常返性2. 简单随机游走: 维数与常返性的关系2.1. 简单随机游走2.2. 二维及以下简单随机游走常返, 三维及以上简单随机游走非常返3. 随机游走 ( d ≤ 2 ) (d\leq 2) (d≤2): 常返的充分条件4. 随…

教育界杂志教育界杂志社教育界编辑部2024年第13期目录

教育视界 “三全育人”视角下九年一贯制学校德育体系构建与探索 练成; 2-4 儿童审美视角下小学文言文教学的实践研究 张瑾; 5-7 打造初中美术创作教学的“四度空间” 叶才红; 8-10 探索之窗《教育界》投稿&#xff1a;cn7kantougao163.com “屋顶农场”项目迭代…

【Android面试八股文】AsyncTask中的任务是串行的还是并行的

文章目录 串行执行并行执行示例代码串行执行(默认)并行执行总结AsyncTask 的任务执行方式可以是串行的,也可以是并行的,这取决于使用的执行器 ( Executor)。 串行执行 默认情况下,AsyncTask 使用的是 SERIAL_EXECUTOR,即任务按顺序一个接一个地执行。这意味着下一个任务…

日本新入管法通过:2027年起实施[育成就劳]制度,新制度更适合外国劳工在日本工作和生活!

最近&#xff0c;日本新入管法&#xff1a;新的育成就业制度预计将在2027年开始实施&#xff0c;而1993年开始的旧的技能实习制度将被废除。 新制度的主要内容 新制度的目的是解决日本国内的劳动力不足问题&#xff0c;确保有足够的劳动者。表示&#xff1a;“为了让日本成为…

ABB工业喷涂机器人保养,轻松搞定!

小伙伴都知道机器人在长时间的使用下&#xff0c;难免遇到一些机械手故障。一旦发生了机器人故障&#xff0c;会影响整个生产线的作业&#xff0c;那么怎么才能做到防止机器人的故障率发生呢&#xff1f;定期的保养与维护显得尤为重要&#xff0c;一个好的维修保养服务商也很重…

bah-host碰撞-pspy+sheallinabox

baheasyqdpmcms利用、mysql利用、host碰撞、shellinaboxd使用、pspy分析隐藏进程提权 信息收集 ┌──(kali㉿kali)-[~] └─$ sudo netdiscover -i eth0 -r 192.168.44.141/24┌──(kali㉿kali)-[~] └─$ sudo nmap -sV -A -T 4 -p- 192.168.44.141 80 3306 ┌──(kali㉿…

Postgis中查找空间距离某条记录坐标100米内的数据

前提 表tablename带有空间字段geom sql语句 #使用 WITH 子查询 target_geom 获取 objectid1 的几何字段 geom。#主查询中使用 ST_DWithin 函数查找距离目标几何字段 100 米内的所有记录&#xff08;除 objectid1 本身&#xff09;。#因为坐标系为 4326&#xff0c;需要将100…

震坤行与洛轴集团展开深化合作 以满足客户不断变化的需求

震坤行与洛轴集团展开深化合作 以满足客户不断变化的需求 在当今日益全球化的市场中&#xff0c;企业之间的战略合作已成为推动共同发展的重要手段。近日&#xff0c;震坤行工业超市&#xff08;上海&#xff09;有限公司&#xff08;震坤行&#xff09;到达中国五大轴承产业基…

Vue页面内容未保存时离开页面做弹框提示

一、背景 目标&#xff1a;如果当前页面中有正在编辑中的内容&#xff0c;那么此时切换组件、跳转路由、关闭标签页、刷新页面&#xff0c;都会有离开确认提示&#xff0c;防止用户因误触导致填写的内容白费。 后台管理系统中有许多需要填写的表单&#xff0c;弹窗方式的表单一…

软设之系统设计概述

软件设计的任务与活动 概要设计详细设计: 抽象化 自顶而下&#xff0c;逐步求稳 信息隐蔽 模块独立(高内聚&#xff0c;低耦合) 概要设计: 设计软件系统总体结构:采用某种设计方法&#xff0c;将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关…

2024年安徽省重点实验室申报指南(条件、流程及材料)

2024年安徽省重点实验室申报指南如下 第一章 总 则 第一条 为进一步规范和加强安徽省重点实验室&#xff08;以下简称“省重点实验室”&#xff09;建设、运行和管理&#xff0c;壮大我省战略科技力量&#xff0c;服务支撑我省经济社会高质量发展和国家高水平科技自立自强&am…

web前端求职:探索职业之路的奥秘与挑战

web前端求职&#xff1a;探索职业之路的奥秘与挑战 在数字化浪潮席卷全球的今天&#xff0c;Web前端技术作为连接用户与互联网世界的桥梁&#xff0c;正逐渐成为求职市场的热门职业。对于即将步入这一领域的求职者来说&#xff0c;Web前端职业既充满了无限机遇&#xff0c;也伴…

Python 循环语句

在Python当中&#xff0c;循环语句用于重复执行特定的代码块&#xff0c;知道某个条件不再满足为止。Python中常用的循环有两种&#xff1a;for 循环 和 while 循环&#xff0c;下面我会分别详细解释它们的用法和特点 for 循环 for循环用于遍历可迭代对象(iterable)&#xff0…

“暗蚊”黑产团伙通过国内下载站传播Mac远控木马攻击活动分析

黑客&网络安全如何 1 概述 近期&#xff0c;安天CERT发现一组利用非官方软件下载站进行投毒和攻击下游用户案例&#xff0c;并深入分析了攻击者在网管运维工具上捆绑植入macOS平台远控木马&#xff0c;利用国内非官方下载站发布&#xff0c;以此取得政企机构内部…

mysql的锁和事务、索引的关系

MySQL的锁、事务和索引在数据库管理中各自扮演着重要的角色&#xff0c;并且它们之间有着紧密的联系。以下是关于这三者关系的详细解释&#xff1a; 锁&#xff08;Locks&#xff09; 定义与功能&#xff1a; 锁是数据库系统用于支持对共享资源进行并发访问、保证数据完整性…