所有,我在使用 systemtap 脚本时遇到问题。我不知道如何在 systemtap 脚本中获取 kill signal sender 的主机名。例如。我在服务器 'sf1' 中执行 kill -9 xclock_process_pid。同时,我运行 1.stap -x xclock_process_pid 来监控 xclock,在 'sf1' 中发送 kill -9 xclock_process_pid 时,有什么方法可以在 systemtap 脚本中获取服务器名称 'sf1'?
但我遇到了一些问题。我的 1.stap 如下所示:
#!/usr/bin/env stap
function hostname:string () %{
STAP_RETURN(current->nsproxy->uts_ns->name.nodename);
%}
probe oneshot {
log(hostname())
}
当我运行 'stap -g 1.stap' 时会出现以下错误你能帮帮我吗?语义错误:位置 0 的探测点不匹配(替代方案:__nfs __scheduler __signal __tcpmib __vm _linuxmib _signal _sunrpc _syscall _vfs begin begin(number) end end(number) error error(number) generic ioblock ioblock_trace ioscheduler ioscheduler_trace ipmib irq_handler kernel kprobe kprocess linuxmib module( string) nd_syscall netdev never nfs nfsd perf process process(number) process(string) procfs procfs(string) scheduler scsi signal socket softirq stap staprun sunrpc syscall tcp tcpmib timer tty udp vfs vm workqueue): systemtap.stap 中的标识符 'oneshot': 87:7 同时解析探测点 oneshot 源:probe oneshot { ^ Pass 2:分析失败。使用另一个“--vp 01”选项重试。