Strace命令是Linux下查看系统调用的一个命令,当脚本或者进程运行出现问题时,可以使用strace跟踪系统调用的日志来定位,今天我们来看看strace的具体用法
工具/原料
1
Centos 7.4
2
strace命令
方法/步骤
1
步骤一:登陆Linux系统执行ls命令时,报错-bash: /bin/ls: Permission denied,但是在root用户下执行正常
2
步骤二:使用strace ls命令查看系统调用,出现如下日志报错,看到系统在exec执行拒绝,很可能是没有执行权限导致[oracle@k8s ~]$ strace lsexecve('/bin/ls', ['ls'], [/* 18 vars */]) = -1 EACCES (Permission denied)write(2, 'strace: exec: Permission denied\n', 32strace: exec: Permission denied) = 32exit_group(1) = ?+++ exited with 1 +++
3
步骤三:切换到root用户下,然后查看which ls查看系统调用路径,然后ll /usr/bin/ls看到其他用户没有执行权限
4
步骤四:chmod 755 /usr/bin/ls增加权限后,切换到oracle用户执行正常
5
步骤五:stracle命令使用具体参数如图所示
6
步骤六:如图service httpd status 查询到httpd的进程是37838strace -tt -T -v -f -o /tmp/strace.log -s 1024 -p 37838命令追踪37838进程的系统调用,然后将日志打印到/tmp/strace.log文件
7
步骤七:然后查看日志,如果出现错误在具体定位原因
注意事项
1
喜欢记得收藏点赞哦
2
知识需要共享