all, 我在使用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'?如何在systemtap腳本中獲取kill signal sender的主機名
但我遇到一些問題。我的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'將reprot下面的錯誤你能幫我嗎?語義錯誤:位置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字符串)nd_syscall netdev永不nfs nfsd進程進程進程進程號字符串procfs procfs字符串調度程序scsi信號套接字softirq stap staprun sunrpc系統調用tcp tcpmib定時器tty udp vfs vm workqueue):標識符'oneshot'在systemtap.stap: 87:7解決探測點onehot來源:探測oneshot {^通過2:分析失敗。再試一次「--vp 01」選項。
非常感謝第一。 – user1102185
當我運行'stap -g 1.stap'會出現以上錯誤,請問我能檢查一下嗎? – user1102185
好的,當添加「oneshot」探針別名時,您的systemtap版本必須大於2.5(2014-04-30)。使用'probe begin {log(....);退出()}'而不是。 – fche