设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
Linux服务器中使用Strace命令跟踪程序的执行情况 ...
返回列表
发新帖
Linux服务器中使用Strace命令跟踪程序的执行情况
[复制链接]
|
主动推送
29
|
0
|
2024-9-11 15:02:35
|
显示全部楼层
|
阅读模式
strace是一个强大的命令行工具,用于Linux服务器中的进程监控、诊断和故障排除程序。一般来说,它用于截取和记录系统调用和进程接收的信号。你可以使用race来分析程序与系统的交互情况,以调试任何程序。
如果程序不断崩溃,或者没有按照预期的运行,这个工具非常有用。它可以深入了解系统的运行情况。任何用户都可以跟踪自己的运行进程。
在本教程中,我们将向您展示如何在Linux服务器上使用strace命令行工具。
安装Strace
默认情况下,所有Linux服务器系统的默认存储库中都有strace。
在 Debian 和 Ubuntu操作系统上,使用以下命令安装 strace。
apt-get install strace -y
在 RHEL 和 CentOS 操作系统上,使用以下命令安装 strace。
dnf install strace -y
安装完 strace 后,可以使用以下命令验证 strace 的版本。
strace -V
1. 追踪系统调用
如果你想跟踪ls命令的系统调用,运行以下命令。
strace ls file1.txt
strace的另一个用途(除了调试一些问题)是,你可以发现程序读取了哪些配置文件。
例如
strace php 2>&1 | grep php.ini
2. 过滤特定的系统调用
默认情况下,strace 会显示给定可执行文件的所有系统调用,如果您想只显示特定的系统调用,可以使用 strace -e 选项。如果您想只显示特定的系统调用,可以使用 strace -e 选项。
例如,要只显示 ls 命令的写系统调用,请运行以下命令。
strace -e write ls file1.txt file2.txt
要只显示ls命令的开放系统调用,请运行以下命令。
strace -e open ls file1.txt file2.txt
如果你想显示由特定进程(如 SSH)打开的文件,请运行以下命令。
strace -f -e open /usr/sbin/sshd 2>&1 | grep ssh
要跟踪与网络相关的系统调用,请运行以下命令。
strace -e network nc -v -n 127.0.0.1 80
3. 附加到已经运行的进程
如果一个进程已经在运行,你可以使用它的PID跟踪它,如下所示。
strace -p 5315
这个命令将持续显示进程所做的系统调用,可按CTRL+C键停止。
其中:5315是正在运行的进程的进程ID。
4. 将跟踪输出重定向到文件
您可以在使用 strace 命令时使用 -o 标志来保存 strace 输出到指定的文件。
strace -o file_out.txt ls file1.txt
现在你可以用下面的命令显示file_out.txt文件的内容。
cat file_out.txt
5. 打印系统调用所花费的时间
要打印每次调用的相对时间戳,使用-r标志,如下所示。
strace -r ls file1.txt
要显示ls命令每次系统调用的开始和结束之间的时间差,使用-T选项。
strace -T ls file1.txt
要打印每次系统调用的挂钟时间,请运行以下命令。
strace -t ls file1.txt
-tt 选项显示时间戳,后面是微秒。
strace -tt ls file1.txt
6. 显示系统调用的指令指针
您可以使用 -i 标志与 strace 命令一起打印命令在每次系统调用时的指令指针。
strace -i ls file1.txt
7. 生成系统调用报告
你可以使用 -c 标志来获取执行跟踪的有用统计报告。
strace -c ls /var/www/html
在上面这个命令的输出中,"calls "一栏表示该特定系统调用被执行了多少次。
8. 打印strace的调试输出
要打印 strace 命令的调试信息,请使用 -d,如下所示。
strace -d ls file1.txt
9. 基于某种条件跟踪系统调用
你也可以根据具体的情况来跟踪系统调用。例如,运行以下命令跟踪所有与内存管理有关的系统调用。
strace -q -e memory ls file1.txt
要跟踪信号变现的系统调用,运行以下命令。
strace -e signal ls file1.txt
要跟踪系统调用的进程,运行以下命令。
strace -e process ls file1.txt
在本文中,我们了解了如何使用strace命令。这个工具对于系统管理员和程序员调试和排除任何程序的故障非常有用。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
伊索谗言
117
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装