运行 ltrace 并非易事。这个 RHEL 5.3 系统基于 Tomcat Catalina(servlet 容器),它使用文本脚本将所有内容联系在一起。当我试图在这里找到一个可执行文件时,我陷入了困境:
/etc/init.d/pki-ca9 调用 dtomcat5-pki-ca9
#Path to the tomcat launch script (direct don't use wrapper)
TOMCAT_SCRIPT=/usr/bin/dtomcat5-pki-ca9
Run Code Online (Sandbox Code Playgroud)
/usr/bin/dtomcat5-pki-ca9 调用看门狗程序
/usr/bin/nuxwdog -f $FNAME
Run Code Online (Sandbox Code Playgroud)
我用包装器替换了 nuxwdog
[root@qantas]# cat /usr/bin/nuxwdog
#!/bin/bash
ltrace -e open -o /tmp/ltrace.$(date +%s) /usr/bin/nuxwdog.bak $@
[root@qantas]# service pki-ca9 start
Starting pki-ca9: [ OK ]
[root@qantas]# cat /tmp/ltrace.1295036985
+++ exited (status 1) +++
Run Code Online (Sandbox Code Playgroud)
这是丑陋的。如何在 tomcat 中运行 strace 或 ltrace?
更新
这是tomcat的“进程”
[root@qantas]# ps -ef | grep tomcat
pkiuser 21767 21766 0 10:10 ? 00:00:09 …
Run Code Online (Sandbox Code Playgroud) 如果我不能以 root 身份访问我的每台服务器,我该如何有效地进行修改?
我不允许设置 ssh 密钥或使用 NOPASSWD 打开 sudoers 文件。我无法安装木偶或太空行走。
有时,当我尝试在脚本中包含 sudo 命令时,我会收到错误“没有 tty”。有没有人在这样的环境中工作过?