File bcc-python3.patch of Package bcc.15681
From d1de8de6459b00f311a66acc775d32eb77e58942 Mon Sep 17 00:00:00 2001
From: Gary Lin <glin@suse.com>
Date: Thu, 8 Feb 2018 11:37:57 +0800
Subject: [PATCH] Use python3 by default
Based on the patch from manfred.h@gmx.net
Signed-off-by: Gary Lin <glin@suse.com>
---
docs/reference_guide.md | 4 ++--
examples/hello_world.py | 2 +-
examples/networking/distributed_bridge/main.py | 6 +++---
examples/networking/distributed_bridge/tunnel.py | 2 +-
examples/networking/distributed_bridge/tunnel_mesh.py | 2 +-
examples/networking/dns_matching/dns_matching.py | 2 +-
examples/networking/http_filter/README.md | 6 +++---
examples/networking/http_filter/http-parse-complete.py | 2 +-
examples/networking/http_filter/http-parse-simple.py | 2 +-
examples/networking/neighbor_sharing/tc_neighbor_sharing.py | 2 +-
examples/networking/simple_tc.py | 2 +-
examples/networking/tc_perf_event.py | 2 +-
examples/networking/tunnel_monitor/README.md | 2 +-
examples/networking/tunnel_monitor/main.py | 4 ++--
examples/networking/tunnel_monitor/monitor.py | 2 +-
examples/networking/vlan_learning/vlan_learning.py | 4 ++--
examples/networking/xdp/xdp_drop_count.py | 2 +-
examples/tracing/bitehist.py | 2 +-
examples/tracing/disksnoop.py | 2 +-
examples/tracing/hello_fields.py | 2 +-
examples/tracing/hello_perf_output.py | 2 +-
examples/tracing/kvm_hypercall.py | 2 +-
examples/tracing/mallocstacks.py | 2 +-
examples/tracing/mysqld_query.py | 2 +-
examples/tracing/nodejs_http_server.py | 2 +-
examples/tracing/stacksnoop.py | 2 +-
examples/tracing/strlen_count.py | 2 +-
examples/tracing/strlen_hist.py | 2 +-
examples/tracing/strlen_snoop.py | 2 +-
examples/tracing/sync_timing.py | 2 +-
examples/tracing/task_switch.py | 2 +-
examples/tracing/tcpv4connect.py | 2 +-
examples/tracing/trace_fields.py | 2 +-
examples/tracing/trace_perf_output.py | 2 +-
examples/tracing/urandomread-explicit.py | 2 +-
examples/tracing/urandomread.py | 2 +-
examples/tracing/vfsreadlat.py | 2 +-
examples/usdt_sample/usdt_sample.md | 10 +++++-----
snapcraft/wrapper | 2 +-
src/python/bcc/__init__.py | 2 +-
tests/lua/test_uprobes.lua | 6 +++---
tests/python/test_array.py | 2 +-
tests/python/test_bpf_log.py | 2 +-
tests/python/test_brb.py | 2 +-
tests/python/test_brb2.py | 2 +-
tests/python/test_call1.py | 2 +-
tests/python/test_callchain.py | 2 +-
tests/python/test_clang.py | 2 +-
tests/python/test_debuginfo.py | 2 +-
tests/python/test_dump_func.py | 2 +-
tests/python/test_flags.py | 2 +-
tests/python/test_histogram.py | 2 +-
tests/python/test_lpm_trie.py | 2 +-
tests/python/test_lru.py | 2 +-
tests/python/test_percpu.py | 2 +-
tests/python/test_perf_event.py | 2 +-
tests/python/test_probe_count.py | 2 +-
tests/python/test_shared_table.py | 2 +-
tests/python/test_stackid.py | 2 +-
tests/python/test_stat1.py | 2 +-
tests/python/test_tools_memleak.py | 2 +-
tests/python/test_tools_smoke.py | 2 +-
tests/python/test_trace1.py | 2 +-
tests/python/test_trace2.py | 2 +-
tests/python/test_trace3.py | 2 +-
tests/python/test_trace4.py | 2 +-
tests/python/test_tracepoint.py | 2 +-
tests/python/test_uprobes.py | 12 ++++++------
tests/python/test_usdt.py | 2 +-
tests/python/test_usdt2.py | 2 +-
tests/python/test_utils.py | 2 +-
tests/python/test_xlate1.py | 2 +-
tools/argdist.py | 2 +-
tools/bashreadline.py | 2 +-
tools/biolatency.py | 2 +-
tools/biosnoop.py | 2 +-
tools/biotop.py | 2 +-
tools/bitesize.py | 2 +-
tools/bpflist.py | 2 +-
tools/btrfsdist.py | 2 +-
tools/btrfsslower.py | 2 +-
tools/cachestat.py | 2 +-
tools/cachetop.py | 2 +-
tools/capable.py | 2 +-
tools/cpudist.py | 2 +-
tools/cpuunclaimed.py | 2 +-
tools/dbslower.py | 2 +-
tools/dbstat.py | 2 +-
tools/dcsnoop.py | 2 +-
tools/dcstat.py | 2 +-
tools/deadlock_detector.py | 2 +-
tools/execsnoop.py | 2 +-
tools/ext4dist.py | 2 +-
tools/ext4slower.py | 2 +-
tools/filelife.py | 2 +-
tools/fileslower.py | 2 +-
tools/filetop.py | 2 +-
tools/funccount.py | 2 +-
tools/funclatency.py | 2 +-
tools/funcslower.py | 2 +-
tools/gethostlatency.py | 2 +-
tools/hardirqs.py | 2 +-
tools/killsnoop.py | 2 +-
tools/lib/ucalls.py | 2 +-
tools/lib/uflow.py | 2 +-
tools/lib/ugc.py | 2 +-
tools/lib/uobjnew.py | 2 +-
tools/lib/ustat.py | 2 +-
tools/lib/uthreads.py | 2 +-
tools/llcstat.py | 2 +-
tools/mdflush.py | 2 +-
tools/memleak.py | 2 +-
tools/mountsnoop.py | 2 +-
tools/mysqld_qslower.py | 2 +-
tools/nfsdist.py | 2 +-
tools/nfsslower.py | 2 +-
tools/offcputime.py | 2 +-
tools/offwaketime.py | 2 +-
tools/old/bashreadline.py | 2 +-
tools/old/biosnoop.py | 2 +-
tools/old/filelife.py | 2 +-
tools/old/gethostlatency.py | 2 +-
tools/old/killsnoop.py | 2 +-
tools/old/memleak.py | 2 +-
tools/old/offcputime.py | 2 +-
tools/old/offwaketime.py | 2 +-
tools/old/opensnoop.py | 2 +-
tools/old/profile.py | 2 +-
tools/old/softirqs.py | 2 +-
tools/old/stackcount.py | 2 +-
tools/old/stacksnoop.py | 2 +-
tools/old/statsnoop.py | 2 +-
tools/old/syncsnoop.py | 2 +-
tools/old/tcpaccept.py | 2 +-
tools/old/tcpconnect.py | 2 +-
tools/old/wakeuptime.py | 2 +-
tools/oomkill.py | 2 +-
tools/opensnoop.py | 2 +-
tools/pidpersec.py | 2 +-
tools/profile.py | 2 +-
tools/runqlat.py | 2 +-
tools/runqlen.py | 2 +-
tools/slabratetop.py | 2 +-
tools/softirqs.py | 2 +-
tools/solisten.py | 2 +-
tools/sslsniff.py | 2 +-
tools/stackcount.py | 2 +-
tools/statsnoop.py | 2 +-
tools/syncsnoop.py | 2 +-
tools/syscount.py | 2 +-
tools/tcpaccept.py | 2 +-
tools/tcpconnect.py | 2 +-
tools/tcpconnlat.py | 2 +-
tools/tcplife.py | 2 +-
tools/tcpretrans.py | 2 +-
tools/tcptop.py | 2 +-
tools/tcptracer.py | 2 +-
tools/tplist.py | 2 +-
tools/trace.py | 2 +-
tools/ttysnoop.py | 2 +-
tools/vfscount.py | 2 +-
tools/vfsstat.py | 2 +-
tools/wakeuptime.py | 2 +-
tools/xfsdist.py | 2 +-
tools/xfsslower.py | 2 +-
tools/zfsdist.py | 2 +-
tools/zfsslower.py | 2 +-
167 files changed, 185 insertions(+), 185 deletions(-)
diff --git a/docs/reference_guide.md b/docs/reference_guide.md
index b4c056b..f9963a6 100644
--- a/docs/reference_guide.md
+++ b/docs/reference_guide.md
@@ -802,7 +802,7 @@ Other examples:
```Python
b.attach_uprobe(name="c", sym="getaddrinfo", fn_name="do_entry")
-b.attach_uprobe(name="/usr/bin/python", sym="main", fn_name="do_main")
+b.attach_uprobe(name="/usr/bin/python3", sym="main", fn_name="do_main")
```
You can call attach_uprobe() more than once, and attach your BPF function to multiple user-level functions.
@@ -831,7 +831,7 @@ Other examples:
```Python
b.attach_uprobe(name="c", sym="getaddrinfo", fn_name="do_entry")
-b.attach_uprobe(name="/usr/bin/python", sym="main", fn_name="do_main")
+b.attach_uprobe(name="/usr/bin/python3", sym="main", fn_name="do_main")
```
You can call attach_uretprobe() more than once, and attach your BPF function to multiple user-level functions.
diff --git a/examples/hello_world.py b/examples/hello_world.py
index c23ed1c..1c52097 100755
--- a/examples/hello_world.py
+++ b/examples/hello_world.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/distributed_bridge/main.py b/examples/networking/distributed_bridge/main.py
index 056443e..10fe357 100755
--- a/examples/networking/distributed_bridge/main.py
+++ b/examples/networking/distributed_bridge/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
@@ -45,9 +45,9 @@ class TunnelSimulation(Simulation):
host_info.append(self._create_ns("host%d" % i, ipaddr=ipaddr,
disable_ipv6=True))
if multicast:
- cmd = ["python", "tunnel.py", str(i)]
+ cmd = ["python3", "tunnel.py", str(i)]
else:
- cmd = ["python", "tunnel_mesh.py", str(num_hosts), str(i), str(dhcp), str(gretap)]
+ cmd = ["python3", "tunnel_mesh.py", str(num_hosts), str(i), str(dhcp), str(gretap)]
p = NSPopen(host_info[i][0].nl.netns, cmd, stdin=PIPE)
self.processes.append(p)
with self.ipdb.create(ifname="br-fabric", kind="bridge") as br:
diff --git a/examples/networking/distributed_bridge/tunnel.py b/examples/networking/distributed_bridge/tunnel.py
index ef94292..e0e333d 100755
--- a/examples/networking/distributed_bridge/tunnel.py
+++ b/examples/networking/distributed_bridge/tunnel.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/distributed_bridge/tunnel_mesh.py b/examples/networking/distributed_bridge/tunnel_mesh.py
index f111ac9..98995b9 100644
--- a/examples/networking/distributed_bridge/tunnel_mesh.py
+++ b/examples/networking/distributed_bridge/tunnel_mesh.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/dns_matching/dns_matching.py b/examples/networking/dns_matching/dns_matching.py
index 943dca5..47d9945 100755
--- a/examples/networking/dns_matching/dns_matching.py
+++ b/examples/networking/dns_matching/dns_matching.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from __future__ import print_function
from bcc import BPF
diff --git a/examples/networking/http_filter/README.md b/examples/networking/http_filter/README.md
index 8e1daf1..c40be73 100644
--- a/examples/networking/http_filter/README.md
+++ b/examples/networking/http_filter/README.md
@@ -7,7 +7,7 @@ eBPF application that parses HTTP packets and extracts (and prints on screen) th
## Usage Example
- $ sudo python http-parse-complete.py
+ $ sudo python3 http-parse-complete.py
GET /pipermail/iovisor-dev/ HTTP/1.1
HTTP/1.1 200 OK
GET /favicon.ico HTTP/1.1
@@ -43,5 +43,5 @@ Two versions of this code are available in this repository:
This sample can be executed by typing either one the two commands below:
- $ sudo python http-parse-simple.py
- $ sudo python http-parse-complete.py
+ $ sudo python3 http-parse-simple.py
+ $ sudo python3 http-parse-complete.py
diff --git a/examples/networking/http_filter/http-parse-complete.py b/examples/networking/http_filter/http-parse-complete.py
index f1e5e0a..e364d9a 100644
--- a/examples/networking/http_filter/http-parse-complete.py
+++ b/examples/networking/http_filter/http-parse-complete.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
#Bertrone Matteo - Polytechnic of Turin
#November 2015
diff --git a/examples/networking/http_filter/http-parse-simple.py b/examples/networking/http_filter/http-parse-simple.py
index b702393..78745ee 100644
--- a/examples/networking/http_filter/http-parse-simple.py
+++ b/examples/networking/http_filter/http-parse-simple.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
#Bertrone Matteo - Polytechnic of Turin
#November 2015
diff --git a/examples/networking/neighbor_sharing/tc_neighbor_sharing.py b/examples/networking/neighbor_sharing/tc_neighbor_sharing.py
index 43799c9..b9d227f 100755
--- a/examples/networking/neighbor_sharing/tc_neighbor_sharing.py
+++ b/examples/networking/neighbor_sharing/tc_neighbor_sharing.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/simple_tc.py b/examples/networking/simple_tc.py
index ec0a3e7..7068516 100755
--- a/examples/networking/simple_tc.py
+++ b/examples/networking/simple_tc.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/tc_perf_event.py b/examples/networking/tc_perf_event.py
index f181a4b..ef560d6 100755
--- a/examples/networking/tc_perf_event.py
+++ b/examples/networking/tc_perf_event.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# tc_perf_event.py Output skb and meta data through perf event
#
diff --git a/examples/networking/tunnel_monitor/README.md b/examples/networking/tunnel_monitor/README.md
index 92cb467..5b3e239 100644
--- a/examples/networking/tunnel_monitor/README.md
+++ b/examples/networking/tunnel_monitor/README.md
@@ -40,7 +40,7 @@ fastclick#1.0.6 bower_components/fastclick
Then, start the simulation by running main.py:
```
-[root@bcc-dev tunnel_monitor]# python main.py
+[root@bcc-dev tunnel_monitor]# python3 main.py
Launching host 1 of 9
Launching host 2 of 9
...
diff --git a/examples/networking/tunnel_monitor/main.py b/examples/networking/tunnel_monitor/main.py
index d3359ef..f665e14 100755
--- a/examples/networking/tunnel_monitor/main.py
+++ b/examples/networking/tunnel_monitor/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
@@ -61,7 +61,7 @@ class TunnelSimulation(Simulation):
# pick one host to start the monitor in
host = host_info[0]
- cmd = ["python", "monitor.py"]
+ cmd = ["python3", "monitor.py"]
p = NSPopen(host[0].nl.netns, cmd)
self.processes.append(p)
diff --git a/examples/networking/tunnel_monitor/monitor.py b/examples/networking/tunnel_monitor/monitor.py
index bac3420..47365c0 100644
--- a/examples/networking/tunnel_monitor/monitor.py
+++ b/examples/networking/tunnel_monitor/monitor.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/networking/vlan_learning/vlan_learning.py b/examples/networking/vlan_learning/vlan_learning.py
index a902320..052394c 100755
--- a/examples/networking/vlan_learning/vlan_learning.py
+++ b/examples/networking/vlan_learning/vlan_learning.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
@@ -33,7 +33,7 @@ class VlanSimulation(Simulation):
for i in range(0, num_clients):
httpmod = ("SimpleHTTPServer" if sys.version_info[0] < 3
else "http.server")
- cmd = ["python", "-m", httpmod, "80"]
+ cmd = ["python3", "-m", httpmod, "80"]
self._create_ns("worker%d" % i, cmd=cmd, fn=virt_fn, action="drop",
ipaddr="172.16.1.5/24")
diff --git a/examples/networking/xdp/xdp_drop_count.py b/examples/networking/xdp/xdp_drop_count.py
index ff0af0f..45af2f9 100755
--- a/examples/networking/xdp/xdp_drop_count.py
+++ b/examples/networking/xdp/xdp_drop_count.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# xdp_drop_count.py Drop incoming packets on XDP layer and count for which
# protocol type
diff --git a/examples/tracing/bitehist.py b/examples/tracing/bitehist.py
index 1dee5dc..7a63aaf 100755
--- a/examples/tracing/bitehist.py
+++ b/examples/tracing/bitehist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# bitehist.py Block I/O size histogram.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/disksnoop.py b/examples/tracing/disksnoop.py
index ed3dd81..f24e749 100755
--- a/examples/tracing/disksnoop.py
+++ b/examples/tracing/disksnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# disksnoop.py Trace block device I/O: basic version of iosnoop.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/hello_fields.py b/examples/tracing/hello_fields.py
index 1525f04..b5000e7 100755
--- a/examples/tracing/hello_fields.py
+++ b/examples/tracing/hello_fields.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# This is a Hello World example that formats output as fields.
diff --git a/examples/tracing/hello_perf_output.py b/examples/tracing/hello_perf_output.py
index cfff264..6ddf54a 100755
--- a/examples/tracing/hello_perf_output.py
+++ b/examples/tracing/hello_perf_output.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# This is a Hello World example that uses BPF_PERF_OUTPUT.
diff --git a/examples/tracing/kvm_hypercall.py b/examples/tracing/kvm_hypercall.py
index 322bb8e..0ffe926 100755
--- a/examples/tracing/kvm_hypercall.py
+++ b/examples/tracing/kvm_hypercall.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# kvm_hypercall.py
#
diff --git a/examples/tracing/mallocstacks.py b/examples/tracing/mallocstacks.py
index 36a0a7f..64751c8 100644
--- a/examples/tracing/mallocstacks.py
+++ b/examples/tracing/mallocstacks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# mallocstacks Trace malloc() calls in a process and print the full
# stack trace for all callsites.
diff --git a/examples/tracing/mysqld_query.py b/examples/tracing/mysqld_query.py
index 15ff297..59f4c9d 100755
--- a/examples/tracing/mysqld_query.py
+++ b/examples/tracing/mysqld_query.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# mysqld_query Trace MySQL server queries. Example of USDT tracing.
# For Linux, uses BCC, BPF. Embedded C.
diff --git a/examples/tracing/nodejs_http_server.py b/examples/tracing/nodejs_http_server.py
index 1017de5..8c39706 100755
--- a/examples/tracing/nodejs_http_server.py
+++ b/examples/tracing/nodejs_http_server.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# nodejs_http_server Basic example of node.js USDT tracing.
# For Linux, uses BCC, BPF. Embedded C.
diff --git a/examples/tracing/stacksnoop.py b/examples/tracing/stacksnoop.py
index e4bbb51..9d53dc7 100755
--- a/examples/tracing/stacksnoop.py
+++ b/examples/tracing/stacksnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# stacksnoop Trace a kernel function and print all kernel stack traces.
# For Linux, uses BCC, eBPF, and currently x86_64 only. Inline C.
diff --git a/examples/tracing/strlen_count.py b/examples/tracing/strlen_count.py
index 7d2db89..982ca51 100755
--- a/examples/tracing/strlen_count.py
+++ b/examples/tracing/strlen_count.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# strlen_count Trace strlen() and print a frequency count of strings.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/strlen_hist.py b/examples/tracing/strlen_hist.py
index dda1cb2..fce4df0 100755
--- a/examples/tracing/strlen_hist.py
+++ b/examples/tracing/strlen_hist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# strlen_hist.py Histogram of system-wide strlen return values
diff --git a/examples/tracing/strlen_snoop.py b/examples/tracing/strlen_snoop.py
index c3c7199..d4331b5 100755
--- a/examples/tracing/strlen_snoop.py
+++ b/examples/tracing/strlen_snoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# strlen_snoop Trace strlen() library function for a given PID.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/sync_timing.py b/examples/tracing/sync_timing.py
index 4fdcb6d..4acc376 100755
--- a/examples/tracing/sync_timing.py
+++ b/examples/tracing/sync_timing.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# sync_timing.py Trace time between syncs.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/task_switch.py b/examples/tracing/task_switch.py
index 7a73d8b..9f093c7 100755
--- a/examples/tracing/task_switch.py
+++ b/examples/tracing/task_switch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/tracing/tcpv4connect.py b/examples/tracing/tcpv4connect.py
index 8a89469..b426a59 100755
--- a/examples/tracing/tcpv4connect.py
+++ b/examples/tracing/tcpv4connect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# tcpv4connect Trace TCP IPv4 connect()s.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/examples/tracing/trace_fields.py b/examples/tracing/trace_fields.py
index 173f21f..35ce043 100755
--- a/examples/tracing/trace_fields.py
+++ b/examples/tracing/trace_fields.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/tracing/trace_perf_output.py b/examples/tracing/trace_perf_output.py
index 62cb7a8..1b02e46 100755
--- a/examples/tracing/trace_perf_output.py
+++ b/examples/tracing/trace_perf_output.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/examples/tracing/urandomread-explicit.py b/examples/tracing/urandomread-explicit.py
index 17049c7..1e4d516 100755
--- a/examples/tracing/urandomread-explicit.py
+++ b/examples/tracing/urandomread-explicit.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# urandomread-explicit Example of instrumenting a kernel tracepoint.
# For Linux, uses BCC, BPF. Embedded C.
diff --git a/examples/tracing/urandomread.py b/examples/tracing/urandomread.py
index 2f46bda..c0c894a 100755
--- a/examples/tracing/urandomread.py
+++ b/examples/tracing/urandomread.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# urandomread Example of instrumenting a kernel tracepoint.
# For Linux, uses BCC, BPF. Embedded C.
diff --git a/examples/tracing/vfsreadlat.py b/examples/tracing/vfsreadlat.py
index bd16dd5..fd634c2 100755
--- a/examples/tracing/vfsreadlat.py
+++ b/examples/tracing/vfsreadlat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# vfsreadlat.py VFS read latency distribution.
# For Linux, uses BCC, eBPF. See .c file.
diff --git a/examples/usdt_sample/usdt_sample.md b/examples/usdt_sample/usdt_sample.md
index c6b5a07..7fdef28 100644
--- a/examples/usdt_sample/usdt_sample.md
+++ b/examples/usdt_sample/usdt_sample.md
@@ -25,7 +25,7 @@ $ popd
After building, you should see the available probes:
```bash
-$ python tools/tplist.py -l examples/usdt_sample/build/usdt_sample_lib1/libusdt_sample_lib1.so
+$ python3 tools/tplist.py -l examples/usdt_sample/build/usdt_sample_lib1/libusdt_sample_lib1.so
examples/usdt_sample/build/usdt_sample_lib1/libusdt_sample_lib1.so usdt_sample_lib1:operation_end
examples/usdt_sample/build/usdt_sample_lib1/libusdt_sample_lib1.so usdt_sample_lib1:operation_start
$ readelf -n examples/usdt_sample/build/usdt_sample_lib1/libusdt_sample_lib1.so
@@ -64,7 +64,7 @@ Press ctrl-c to exit.
Use argdist.py on the individual probes:
```bash
-$ sudo python tools/argdist.py -p 25433 -i 5 -C 'u:usdt_sample_lib1:operation_start():char*:arg2#input' -z 32
+$ sudo python3 tools/argdist.py -p 25433 -i 5 -C 'u:usdt_sample_lib1:operation_start():char*:arg2#input' -z 32
[11:18:29]
input
COUNT EVENT
@@ -97,7 +97,7 @@ input
Use latency.py to trace the operation latencies:
```bash
-$ sudo python examples/usdt_sample/scripts/latency.py -p=25433 -f="pf_2"
+$ sudo python3 examples/usdt_sample/scripts/latency.py -p=25433 -f="pf_2"
Attaching probes to pid 25433
Tracing... Hit Ctrl-C to end.
time(s) id input output start (ns) end (ns) duration (us)
@@ -121,7 +121,7 @@ time(s) id input output
Use lat_dist.py to trace the latency distribution:
```bash
-$ sudo python examples/usdt_sample/scripts/lat_dist.py -p=25433 -i=30 -f="pf_20"
+$ sudo python3 examples/usdt_sample/scripts/lat_dist.py -p=25433 -i=30 -f="pf_20"
Attaching probes to pid 25433
[11:23:47]
@@ -147,7 +147,7 @@ Bucket ptr = 'pf_20'
Use lat_avg.py to trace the moving average of the latencies:
```bash
-$ sudo python examples/usdt_sample/scripts/lat_avg.py -p=25433 -i=5 -c=10 -f="pf_2"
+$ sudo python3 examples/usdt_sample/scripts/lat_avg.py -p=25433 -i=5 -c=10 -f="pf_2"
Attaching probes to pid 25433
Tracing... Hit Ctrl-C to end.
[11:28:32]
diff --git a/snapcraft/wrapper b/snapcraft/wrapper
index 0256962..ab24687 100755
--- a/snapcraft/wrapper
+++ b/snapcraft/wrapper
@@ -7,7 +7,7 @@
cmd="$1"
if [ `id -u` = 0 ] ; then
shift
- stdbuf -oL $SNAP/usr/bin/python "$SNAP/usr/share/bcc/tools/$cmd" $@
+ stdbuf -oL $SNAP/usr/bin/python3 "$SNAP/usr/share/bcc/tools/$cmd" $@
else
echo "Need to run $cmd as root (use sudo $@)"
exit 1
diff --git a/src/python/bcc/__init__.py b/src/python/bcc/__init__.py
index 97cc70d..8e38bee 100644
--- a/src/python/bcc/__init__.py
+++ b/src/python/bcc/__init__.py
@@ -813,7 +813,7 @@ class BPF(object):
version of the library used by the process.
Example: BPF(text).attach_uprobe("c", "malloc")
- BPF(text).attach_uprobe("/usr/bin/python", "main")
+ BPF(text).attach_uprobe("/usr/bin/python3", "main")
"""
name = str(name)
diff --git a/tests/lua/test_uprobes.lua b/tests/lua/test_uprobes.lua
index 059486e..b969cb6 100644
--- a/tests/lua/test_uprobes.lua
+++ b/tests/lua/test_uprobes.lua
@@ -54,10 +54,10 @@ int count(struct pt_regs *ctx) {
}]]
local b = BPF:new{text=text}
- b:attach_uprobe{name="/usr/bin/python", sym="main", fn_name="count"}
- b:attach_uprobe{name="/usr/bin/python", sym="main", fn_name="count", retprobe=true}
+ b:attach_uprobe{name="/usr/bin/python3", sym="main", fn_name="count"}
+ b:attach_uprobe{name="/usr/bin/python3", sym="main", fn_name="count", retprobe=true}
- os.spawn("/usr/bin/python -V")
+ os.spawn("/usr/bin/python3 -V")
local stats = b:get_table("stats")
assert_true(tonumber(stats:get(0)) >= 2)
diff --git a/tests/python/test_array.py b/tests/python/test_array.py
index 9a78656..36d5178 100755
--- a/tests/python/test_array.py
+++ b/tests/python/test_array.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_bpf_log.py b/tests/python/test_bpf_log.py
index cb3d003..e38c5ea 100755
--- a/tests/python/test_bpf_log.py
+++ b/tests/python/test_bpf_log.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_brb.py b/tests/python/test_brb.py
index 9a05a14..8ebf075 100755
--- a/tests/python/test_brb.py
+++ b/tests/python/test_brb.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_brb2.py b/tests/python/test_brb2.py
index a0a0ecc..112bc48 100755
--- a/tests/python/test_brb2.py
+++ b/tests/python/test_brb2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_call1.py b/tests/python/test_call1.py
index 68d68de..201944a 100755
--- a/tests/python/test_call1.py
+++ b/tests/python/test_call1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_callchain.py b/tests/python/test_callchain.py
index 8dc90e9..735b100 100755
--- a/tests/python/test_callchain.py
+++ b/tests/python/test_callchain.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_clang.py b/tests/python/test_clang.py
index bd882d1..ebe9011 100755
--- a/tests/python/test_clang.py
+++ b/tests/python/test_clang.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_debuginfo.py b/tests/python/test_debuginfo.py
index 23ff760..01dc1ab 100755
--- a/tests/python/test_debuginfo.py
+++ b/tests/python/test_debuginfo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) Sasha Goldshtein
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_dump_func.py b/tests/python/test_dump_func.py
index 6fd3b49..56872f5 100755
--- a/tests/python/test_dump_func.py
+++ b/tests/python/test_dump_func.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_flags.py b/tests/python/test_flags.py
index a5d2b42..1e0cb5a 100644
--- a/tests/python/test_flags.py
+++ b/tests/python/test_flags.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_histogram.py b/tests/python/test_histogram.py
index 1e95ef3..5a128e6 100755
--- a/tests/python/test_histogram.py
+++ b/tests/python/test_histogram.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_lpm_trie.py b/tests/python/test_lpm_trie.py
index 560cb4b..6a7dc31 100644
--- a/tests/python/test_lpm_trie.py
+++ b/tests/python/test_lpm_trie.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2017 Facebook, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_lru.py b/tests/python/test_lru.py
index f900bcb..d39d0ba 100644
--- a/tests/python/test_lru.py
+++ b/tests/python/test_lru.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_percpu.py b/tests/python/test_percpu.py
index 5ab3691..4dd2846 100755
--- a/tests/python/test_percpu.py
+++ b/tests/python/test_percpu.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_perf_event.py b/tests/python/test_perf_event.py
index a7c8721..d911d9d 100755
--- a/tests/python/test_perf_event.py
+++ b/tests/python/test_perf_event.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2016 PLUMgrid
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_probe_count.py b/tests/python/test_probe_count.py
index 3c3001c..a9392af 100755
--- a/tests/python/test_probe_count.py
+++ b/tests/python/test_probe_count.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) Suchakra Sharma <suchakrapani.sharma@polymtl.ca>
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_shared_table.py b/tests/python/test_shared_table.py
index 10dd63f..7b8f9d5 100644
--- a/tests/python/test_shared_table.py
+++ b/tests/python/test_shared_table.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2016 Facebook, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_stackid.py b/tests/python/test_stackid.py
index 481adbd..0becad0 100755
--- a/tests/python/test_stackid.py
+++ b/tests/python/test_stackid.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_stat1.py b/tests/python/test_stat1.py
index 23b3a29..5bf1714 100755
--- a/tests/python/test_stat1.py
+++ b/tests/python/test_stat1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_tools_memleak.py b/tests/python/test_tools_memleak.py
index acdc6f6..f551c0f 100755
--- a/tests/python/test_tools_memleak.py
+++ b/tests/python/test_tools_memleak.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
from unittest import main, skipUnless, TestCase
import distutils.version
diff --git a/tests/python/test_tools_smoke.py b/tests/python/test_tools_smoke.py
index 92d2262..ecf8502 100755
--- a/tests/python/test_tools_smoke.py
+++ b/tests/python/test_tools_smoke.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) Sasha Goldshtein, 2017
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_trace1.py b/tests/python/test_trace1.py
index 685c946..9b7b94a 100755
--- a/tests/python/test_trace1.py
+++ b/tests/python/test_trace1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_trace2.py b/tests/python/test_trace2.py
index 4e3cfaa..04e29a3 100755
--- a/tests/python/test_trace2.py
+++ b/tests/python/test_trace2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_trace3.py b/tests/python/test_trace3.py
index f4cb554..10e6266 100755
--- a/tests/python/test_trace3.py
+++ b/tests/python/test_trace3.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_trace4.py b/tests/python/test_trace4.py
index 49e3d23..af2d9c9 100755
--- a/tests/python/test_trace4.py
+++ b/tests/python/test_trace4.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_tracepoint.py b/tests/python/test_tracepoint.py
index 3bc576a..c92bec0 100755
--- a/tests/python/test_tracepoint.py
+++ b/tests/python/test_tracepoint.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) Sasha Goldshtein
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_uprobes.py b/tests/python/test_uprobes.py
index 62a370f..db14feb 100755
--- a/tests/python/test_uprobes.py
+++ b/tests/python/test_uprobes.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
@@ -56,13 +56,13 @@ int count(struct pt_regs *ctx) {
return 0;
}"""
b = bcc.BPF(text=text)
- b.attach_uprobe(name="/usr/bin/python", sym="main", fn_name="count")
- b.attach_uretprobe(name="/usr/bin/python", sym="main", fn_name="count")
- with os.popen("/usr/bin/python -V") as f:
+ b.attach_uprobe(name="/usr/bin/python3", sym="main", fn_name="count")
+ b.attach_uretprobe(name="/usr/bin/python3", sym="main", fn_name="count")
+ with os.popen("/usr/bin/python3 -V") as f:
pass
self.assertGreater(b["stats"][ctypes.c_int(0)].value, 0)
- b.detach_uretprobe(name="/usr/bin/python", sym="main")
- b.detach_uprobe(name="/usr/bin/python", sym="main")
+ b.detach_uretprobe(name="/usr/bin/python3", sym="main")
+ b.detach_uprobe(name="/usr/bin/python3", sym="main")
def test_mount_namespace(self):
text = """
diff --git a/tests/python/test_usdt.py b/tests/python/test_usdt.py
index d1f0ca0..b2577b5 100755
--- a/tests/python/test_usdt.py
+++ b/tests/python/test_usdt.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# USAGE: test_usdt.py
#
diff --git a/tests/python/test_usdt2.py b/tests/python/test_usdt2.py
index 5408b42..a966cd6 100755
--- a/tests/python/test_usdt2.py
+++ b/tests/python/test_usdt2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# USAGE: test_usdt2.py
#
diff --git a/tests/python/test_utils.py b/tests/python/test_utils.py
index 2959482..60fdd51 100755
--- a/tests/python/test_utils.py
+++ b/tests/python/test_utils.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright (c) Catalysts GmbH
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tests/python/test_xlate1.py b/tests/python/test_xlate1.py
index 5183e2a..3057c45 100755
--- a/tests/python/test_xlate1.py
+++ b/tests/python/test_xlate1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
diff --git a/tools/argdist.py b/tools/argdist.py
index 61f8e00..8e68a31 100755
--- a/tools/argdist.py
+++ b/tools/argdist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# argdist Trace a function and display a distribution of its
# parameter values as a histogram or frequency count.
diff --git a/tools/bashreadline.py b/tools/bashreadline.py
index 0be8b26..1aaaa11 100755
--- a/tools/bashreadline.py
+++ b/tools/bashreadline.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# bashreadline Print entered bash commands from all running shells.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/biolatency.py b/tools/biolatency.py
index 46bebc4..76c386b 100755
--- a/tools/biolatency.py
+++ b/tools/biolatency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# biolatency Summarize block device I/O latency as a histogram.
diff --git a/tools/biosnoop.py b/tools/biosnoop.py
index 314a19e..e507b34 100755
--- a/tools/biosnoop.py
+++ b/tools/biosnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# biosnoop Trace block device I/O and print details including issuing PID.
diff --git a/tools/biotop.py b/tools/biotop.py
index 8da9255..26df0a2 100755
--- a/tools/biotop.py
+++ b/tools/biotop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# biotop block device (disk) I/O by process.
diff --git a/tools/bitesize.py b/tools/bitesize.py
index f70f091..d70d668 100755
--- a/tools/bitesize.py
+++ b/tools/bitesize.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# bitehist.py Block I/O size histogram.
# For Linux, uses BCC, eBPF. See .c file.
diff --git a/tools/bpflist.py b/tools/bpflist.py
index 5fd109c..6f80b89 100755
--- a/tools/bpflist.py
+++ b/tools/bpflist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# bpflist Display processes currently using BPF programs and maps,
# pinned BPF programs and maps, and enabled probes.
diff --git a/tools/btrfsdist.py b/tools/btrfsdist.py
index fe5a2bf..a822ec3 100755
--- a/tools/btrfsdist.py
+++ b/tools/btrfsdist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# btrfsdist Summarize btrfs operation latency.
diff --git a/tools/btrfsslower.py b/tools/btrfsslower.py
index f145dcf..07e7555 100755
--- a/tools/btrfsslower.py
+++ b/tools/btrfsslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# btrfsslower Trace slow btrfs operations.
diff --git a/tools/cachestat.py b/tools/cachestat.py
index 868b370..65e5389 100755
--- a/tools/cachestat.py
+++ b/tools/cachestat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# cachestat Count cache kernel function calls.
# For Linux, uses BCC, eBPF. See .c file.
diff --git a/tools/cachetop.py b/tools/cachetop.py
index bb5f6d8..5afd3fa 100755
--- a/tools/cachetop.py
+++ b/tools/cachetop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# @lint-avoid-python-3-compatibility-imports
#
# cachetop Count cache kernel function calls per processes
diff --git a/tools/capable.py b/tools/capable.py
index 83bfd98..0238e57 100755
--- a/tools/capable.py
+++ b/tools/capable.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# capable Trace security capabilitiy checks (cap_capable()).
diff --git a/tools/cpudist.py b/tools/cpudist.py
index 47658c0..b616be5 100755
--- a/tools/cpudist.py
+++ b/tools/cpudist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# cpudist Summarize on- and off-CPU time per task as a histogram.
diff --git a/tools/cpuunclaimed.py b/tools/cpuunclaimed.py
index 58b8e4a..b146097 100755
--- a/tools/cpuunclaimed.py
+++ b/tools/cpuunclaimed.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# cpuunclaimed Sample CPU run queues and calculate unclaimed idle CPU.
diff --git a/tools/dbslower.py b/tools/dbslower.py
index d6f36cc..c351577 100755
--- a/tools/dbslower.py
+++ b/tools/dbslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# dbslower Trace MySQL and PostgreSQL queries slower than a threshold.
#
diff --git a/tools/dbstat.py b/tools/dbstat.py
index a89b097..f8c612f 100755
--- a/tools/dbstat.py
+++ b/tools/dbstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# dbstat Display a histogram of MySQL and PostgreSQL query latencies.
#
diff --git a/tools/dcsnoop.py b/tools/dcsnoop.py
index 45fc6be..040083b 100755
--- a/tools/dcsnoop.py
+++ b/tools/dcsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# dcsnoop Trace directory entry cache (dcache) lookups.
diff --git a/tools/dcstat.py b/tools/dcstat.py
index 5ecddd1..d2db8d4 100755
--- a/tools/dcstat.py
+++ b/tools/dcstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# dcstat Directory entry cache (dcache) stats.
diff --git a/tools/deadlock_detector.py b/tools/deadlock_detector.py
index d356cf5..a788faa 100755
--- a/tools/deadlock_detector.py
+++ b/tools/deadlock_detector.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# deadlock_detector Detects potential deadlocks (lock order inversions)
# on a running process. For Linux, uses BCC, eBPF.
diff --git a/tools/execsnoop.py b/tools/execsnoop.py
index db4e0ba..5bb1246 100755
--- a/tools/execsnoop.py
+++ b/tools/execsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# execsnoop Trace new processes via exec() syscalls.
diff --git a/tools/ext4dist.py b/tools/ext4dist.py
index 4b9142f..9502016 100755
--- a/tools/ext4dist.py
+++ b/tools/ext4dist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ext4dist Summarize ext4 operation latency.
diff --git a/tools/ext4slower.py b/tools/ext4slower.py
index 09e8572..c08ed33 100755
--- a/tools/ext4slower.py
+++ b/tools/ext4slower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ext4slower Trace slow ext4 operations.
diff --git a/tools/filelife.py b/tools/filelife.py
index 9405af3..bd32f32 100755
--- a/tools/filelife.py
+++ b/tools/filelife.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# filelife Trace the lifespan of short-lived files.
diff --git a/tools/fileslower.py b/tools/fileslower.py
index 996ab58..b2290c1 100755
--- a/tools/fileslower.py
+++ b/tools/fileslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# fileslower Trace slow synchronous file reads and writes.
diff --git a/tools/filetop.py b/tools/filetop.py
index c8122ce..17412f9 100755
--- a/tools/filetop.py
+++ b/tools/filetop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# filetop file reads and writes by process.
diff --git a/tools/funccount.py b/tools/funccount.py
index 99654f2..822c662 100755
--- a/tools/funccount.py
+++ b/tools/funccount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# funccount Count functions, tracepoints, and USDT probes.
diff --git a/tools/funclatency.py b/tools/funclatency.py
index d2e65f2..1921463 100755
--- a/tools/funclatency.py
+++ b/tools/funclatency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# funclatency Time functions and print latency as a histogram.
diff --git a/tools/funcslower.py b/tools/funcslower.py
index a807458..205d86c 100755
--- a/tools/funcslower.py
+++ b/tools/funcslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# funcslower Trace slow kernel or user function calls.
diff --git a/tools/gethostlatency.py b/tools/gethostlatency.py
index 77a8b81..4a82314 100755
--- a/tools/gethostlatency.py
+++ b/tools/gethostlatency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# gethostlatency Show latency for getaddrinfo/gethostbyname[2] calls.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/hardirqs.py b/tools/hardirqs.py
index 0690f09..227877d 100755
--- a/tools/hardirqs.py
+++ b/tools/hardirqs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# hardirqs Summarize hard IRQ (interrupt) event time.
diff --git a/tools/killsnoop.py b/tools/killsnoop.py
index 2ca1586..d12fd6e 100755
--- a/tools/killsnoop.py
+++ b/tools/killsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# killsnoop Trace signals issued by the kill() syscall.
diff --git a/tools/lib/ucalls.py b/tools/lib/ucalls.py
index 491565c..5aa9e4b 100755
--- a/tools/lib/ucalls.py
+++ b/tools/lib/ucalls.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ucalls Summarize method calls in high-level languages and/or system calls.
diff --git a/tools/lib/uflow.py b/tools/lib/uflow.py
index 1b59bca..68bd840 100755
--- a/tools/lib/uflow.py
+++ b/tools/lib/uflow.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# uflow Trace method execution flow in high-level languages.
diff --git a/tools/lib/ugc.py b/tools/lib/ugc.py
index 2da265b..8875427 100755
--- a/tools/lib/ugc.py
+++ b/tools/lib/ugc.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ugc Summarize garbage collection events in high-level languages.
diff --git a/tools/lib/uobjnew.py b/tools/lib/uobjnew.py
index bcd69b4..9594fcd 100755
--- a/tools/lib/uobjnew.py
+++ b/tools/lib/uobjnew.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# uobjnew Summarize object allocations in high-level languages.
diff --git a/tools/lib/ustat.py b/tools/lib/ustat.py
index 34cc019..0c9ae11 100755
--- a/tools/lib/ustat.py
+++ b/tools/lib/ustat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ustat Activity stats from high-level languages, including exceptions,
diff --git a/tools/lib/uthreads.py b/tools/lib/uthreads.py
index b5bed53..12f76be 100755
--- a/tools/lib/uthreads.py
+++ b/tools/lib/uthreads.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# uthreads Trace thread creation/destruction events in high-level languages.
diff --git a/tools/llcstat.py b/tools/llcstat.py
index eb32a22..d181144 100755
--- a/tools/llcstat.py
+++ b/tools/llcstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# llcstat.py Summarize cache references and cache misses by PID.
# Cache reference and cache miss are corresponding events defined in
diff --git a/tools/mdflush.py b/tools/mdflush.py
index 35ed31a..7283f1d 100755
--- a/tools/mdflush.py
+++ b/tools/mdflush.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# mdflush Trace md flush events.
diff --git a/tools/memleak.py b/tools/memleak.py
index 5788e32..1858e93 100755
--- a/tools/memleak.py
+++ b/tools/memleak.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# memleak Trace and display outstanding allocations to detect
# memory leaks in user-mode processes and the kernel.
diff --git a/tools/mountsnoop.py b/tools/mountsnoop.py
index 223b2f8..db0db33 100755
--- a/tools/mountsnoop.py
+++ b/tools/mountsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# mountsnoop Trace mount() and umount syscalls.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/mysqld_qslower.py b/tools/mysqld_qslower.py
index 3ed18ec..d6083eb 100755
--- a/tools/mysqld_qslower.py
+++ b/tools/mysqld_qslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# mysqld_qslower MySQL server queries slower than a threshold.
# For Linux, uses BCC, BPF. Embedded C.
diff --git a/tools/nfsdist.py b/tools/nfsdist.py
index c38c053..af31f66 100755
--- a/tools/nfsdist.py
+++ b/tools/nfsdist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# nfsdist Summarize NFS operation latency
diff --git a/tools/nfsslower.py b/tools/nfsslower.py
index cacd473..a2bca34 100755
--- a/tools/nfsslower.py
+++ b/tools/nfsslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# nfsslower Trace slow NFS operations
diff --git a/tools/offcputime.py b/tools/offcputime.py
index 1f47459..f31119c 100755
--- a/tools/offcputime.py
+++ b/tools/offcputime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# offcputime Summarize off-CPU time by stack trace
# For Linux, uses BCC, eBPF.
diff --git a/tools/offwaketime.py b/tools/offwaketime.py
index 964f062..c775683 100755
--- a/tools/offwaketime.py
+++ b/tools/offwaketime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# offwaketime Summarize blocked time by kernel off-CPU stack + waker stack
# For Linux, uses BCC, eBPF.
diff --git a/tools/old/bashreadline.py b/tools/old/bashreadline.py
index 464dfda..007fe16 100755
--- a/tools/old/bashreadline.py
+++ b/tools/old/bashreadline.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# bashreadline Print entered bash commands from all running shells.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/old/biosnoop.py b/tools/old/biosnoop.py
index 37ee3f9..7eddf51 100755
--- a/tools/old/biosnoop.py
+++ b/tools/old/biosnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# biosnoop Trace block device I/O and print details including issuing PID.
diff --git a/tools/old/filelife.py b/tools/old/filelife.py
index 075be08..733ff86 100755
--- a/tools/old/filelife.py
+++ b/tools/old/filelife.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# filelife Trace the lifespan of short-lived files.
diff --git a/tools/old/gethostlatency.py b/tools/old/gethostlatency.py
index 7d32cb8..52ca436 100755
--- a/tools/old/gethostlatency.py
+++ b/tools/old/gethostlatency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# gethostlatency Show latency for getaddrinfo/gethostbyname[2] calls.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/old/killsnoop.py b/tools/old/killsnoop.py
index ddf9d5a..0b0b1d5 100755
--- a/tools/old/killsnoop.py
+++ b/tools/old/killsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# killsnoop Trace signals issued by the kill() syscall.
diff --git a/tools/old/memleak.py b/tools/old/memleak.py
index b962c99..3e91b6f 100755
--- a/tools/old/memleak.py
+++ b/tools/old/memleak.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# memleak Trace and display outstanding allocations to detect
# memory leaks in user-mode processes and the kernel.
diff --git a/tools/old/offcputime.py b/tools/old/offcputime.py
index 680d924..253786a 100755
--- a/tools/old/offcputime.py
+++ b/tools/old/offcputime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# offcputime Summarize off-CPU time by kernel stack trace
# For Linux, uses BCC, eBPF.
diff --git a/tools/old/offwaketime.py b/tools/old/offwaketime.py
index 3b5bb36..225a877 100755
--- a/tools/old/offwaketime.py
+++ b/tools/old/offwaketime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# offwaketime Summarize blocked time by kernel off-CPU stack + waker stack
# For Linux, uses BCC, eBPF.
diff --git a/tools/old/opensnoop.py b/tools/old/opensnoop.py
index 5df3b41..2eabd50 100755
--- a/tools/old/opensnoop.py
+++ b/tools/old/opensnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# opensnoop Trace open() syscalls.
diff --git a/tools/old/profile.py b/tools/old/profile.py
index 7dbc246..fc0e3f3 100755
--- a/tools/old/profile.py
+++ b/tools/old/profile.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# profile Profile CPU usage by sampling stack traces at a timed interval.
diff --git a/tools/old/softirqs.py b/tools/old/softirqs.py
index 3b40b1a..a949bbe 100755
--- a/tools/old/softirqs.py
+++ b/tools/old/softirqs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# softirqs Summarize soft IRQ (interrupt) event time.
diff --git a/tools/old/stackcount.py b/tools/old/stackcount.py
index 108c800..27b7520 100755
--- a/tools/old/stackcount.py
+++ b/tools/old/stackcount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# stackcount Count kernel function calls and their stack traces.
# For Linux, uses BCC, eBPF.
diff --git a/tools/old/stacksnoop.py b/tools/old/stacksnoop.py
index 9fcc12b..de3debf 100755
--- a/tools/old/stacksnoop.py
+++ b/tools/old/stacksnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# stacksnoop Trace a kernel function and print all kernel stack traces.
# For Linux, uses BCC, eBPF, and currently x86_64 only. Inline C.
diff --git a/tools/old/statsnoop.py b/tools/old/statsnoop.py
index ad54ac7..9284110 100755
--- a/tools/old/statsnoop.py
+++ b/tools/old/statsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# statsnoop Trace stat() syscalls.
diff --git a/tools/old/syncsnoop.py b/tools/old/syncsnoop.py
index cae57ea..27fbc87 100755
--- a/tools/old/syncsnoop.py
+++ b/tools/old/syncsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# syncsnoop Trace sync() syscall.
diff --git a/tools/old/tcpaccept.py b/tools/old/tcpaccept.py
index 2fda8a7..fe8de02 100755
--- a/tools/old/tcpaccept.py
+++ b/tools/old/tcpaccept.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpaccept Trace TCP accept()s.
diff --git a/tools/old/tcpconnect.py b/tools/old/tcpconnect.py
index 2fb5307..4ba1dc4 100755
--- a/tools/old/tcpconnect.py
+++ b/tools/old/tcpconnect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpconnect Trace TCP connect()s.
diff --git a/tools/old/wakeuptime.py b/tools/old/wakeuptime.py
index e09840a..7691da3 100644
--- a/tools/old/wakeuptime.py
+++ b/tools/old/wakeuptime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# wakeuptime Summarize sleep to wakeup time by waker kernel stack
# For Linux, uses BCC, eBPF.
diff --git a/tools/oomkill.py b/tools/oomkill.py
index f0837f0..9dd3394 100755
--- a/tools/oomkill.py
+++ b/tools/oomkill.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# oomkill Trace oom_kill_process(). For Linux, uses BCC, eBPF.
#
diff --git a/tools/opensnoop.py b/tools/opensnoop.py
index 112c56a..0834086 100755
--- a/tools/opensnoop.py
+++ b/tools/opensnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# opensnoop Trace open() syscalls.
diff --git a/tools/pidpersec.py b/tools/pidpersec.py
index c449004..38f4196 100755
--- a/tools/pidpersec.py
+++ b/tools/pidpersec.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# pidpersec Count new processes (via fork).
diff --git a/tools/profile.py b/tools/profile.py
index 687a162..af317fb 100755
--- a/tools/profile.py
+++ b/tools/profile.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# profile Profile CPU usage by sampling stack traces at a timed interval.
diff --git a/tools/runqlat.py b/tools/runqlat.py
index 1eb5d9a..66df74a 100755
--- a/tools/runqlat.py
+++ b/tools/runqlat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# runqlat Run queue (scheduler) latency as a histogram.
diff --git a/tools/runqlen.py b/tools/runqlen.py
index 4a6bc48..728c6f9 100755
--- a/tools/runqlen.py
+++ b/tools/runqlen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# runqlen Summarize scheduler run queue length as a histogram.
diff --git a/tools/slabratetop.py b/tools/slabratetop.py
index aa1a7b4..4c2604f 100755
--- a/tools/slabratetop.py
+++ b/tools/slabratetop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# slabratetop Summarize kmem_cache_alloc() calls.
diff --git a/tools/softirqs.py b/tools/softirqs.py
index 2cd9248..10354e1 100755
--- a/tools/softirqs.py
+++ b/tools/softirqs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# softirqs Summarize soft IRQ (interrupt) event time.
diff --git a/tools/solisten.py b/tools/solisten.py
index 31f4637..bd2ac92 100755
--- a/tools/solisten.py
+++ b/tools/solisten.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# solisten Trace TCP listen events
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/sslsniff.py b/tools/sslsniff.py
index a81b4a4..1108c17 100755
--- a/tools/sslsniff.py
+++ b/tools/sslsniff.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# sslsniff Captures data on read/recv or write/send functions of OpenSSL and
# GnuTLS
diff --git a/tools/stackcount.py b/tools/stackcount.py
index 536deed..7973432 100755
--- a/tools/stackcount.py
+++ b/tools/stackcount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# stackcount Count events and their stack traces.
# For Linux, uses BCC, eBPF.
diff --git a/tools/statsnoop.py b/tools/statsnoop.py
index f68acdc..4d4158f 100755
--- a/tools/statsnoop.py
+++ b/tools/statsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# statsnoop Trace stat() syscalls.
diff --git a/tools/syncsnoop.py b/tools/syncsnoop.py
index 90dcb20..adb54d9 100755
--- a/tools/syncsnoop.py
+++ b/tools/syncsnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# syncsnoop Trace sync() syscall.
diff --git a/tools/syscount.py b/tools/syscount.py
index 2faee50..afdf0ac 100755
--- a/tools/syscount.py
+++ b/tools/syscount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# syscount Summarize syscall counts and latencies.
#
diff --git a/tools/tcpaccept.py b/tools/tcpaccept.py
index 8593837..93f6f94 100755
--- a/tools/tcpaccept.py
+++ b/tools/tcpaccept.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpaccept Trace TCP accept()s.
diff --git a/tools/tcpconnect.py b/tools/tcpconnect.py
index 6779adf..1121715 100755
--- a/tools/tcpconnect.py
+++ b/tools/tcpconnect.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpconnect Trace TCP connect()s.
diff --git a/tools/tcpconnlat.py b/tools/tcpconnlat.py
index d494675..1dadf62 100755
--- a/tools/tcpconnlat.py
+++ b/tools/tcpconnlat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpconnlat Trace TCP active connection latency (connect).
diff --git a/tools/tcplife.py b/tools/tcplife.py
index 547b71d..491a315 100755
--- a/tools/tcplife.py
+++ b/tools/tcplife.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcplife Trace the lifespan of TCP sessions and summarize.
diff --git a/tools/tcpretrans.py b/tools/tcpretrans.py
index 21fcbc7..b869bc2 100755
--- a/tools/tcpretrans.py
+++ b/tools/tcpretrans.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcpretrans Trace TCP retransmits and TLPs.
diff --git a/tools/tcptop.py b/tools/tcptop.py
index 4b448e8..ff1a726 100755
--- a/tools/tcptop.py
+++ b/tools/tcptop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# tcptop Summarize TCP send/recv throughput by host.
diff --git a/tools/tcptracer.py b/tools/tcptracer.py
index 5fd80ca..7dcf956 100755
--- a/tools/tcptracer.py
+++ b/tools/tcptracer.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# tcpv4tracer Trace TCP connections.
# For Linux, uses BCC, eBPF. Embedded C.
diff --git a/tools/tplist.py b/tools/tplist.py
index db4b68b..291ae57 100755
--- a/tools/tplist.py
+++ b/tools/tplist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# tplist Display kernel tracepoints or USDT probes and their formats.
#
diff --git a/tools/trace.py b/tools/trace.py
index 4390328..dfacb13 100755
--- a/tools/trace.py
+++ b/tools/trace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# trace Trace a function and print a trace message based on its
# parameters, with an optional filter.
diff --git a/tools/ttysnoop.py b/tools/ttysnoop.py
index 1510d7b..21e7c46 100755
--- a/tools/ttysnoop.py
+++ b/tools/ttysnoop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# ttysnoop Watch live output from a tty or pts device.
diff --git a/tools/vfscount.py b/tools/vfscount.py
index 4641ea3..f4660ef 100755
--- a/tools/vfscount.py
+++ b/tools/vfscount.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# vfscount Count VFS calls ("vfs_*").
diff --git a/tools/vfsstat.py b/tools/vfsstat.py
index 1764c60..7ff5407 100755
--- a/tools/vfsstat.py
+++ b/tools/vfsstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# vfsstat Count some VFS calls.
diff --git a/tools/wakeuptime.py b/tools/wakeuptime.py
index b242f30..5b857c5 100755
--- a/tools/wakeuptime.py
+++ b/tools/wakeuptime.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# wakeuptime Summarize sleep to wakeup time by waker kernel stack
# For Linux, uses BCC, eBPF.
diff --git a/tools/xfsdist.py b/tools/xfsdist.py
index 18d5a8e..66eaeb3 100755
--- a/tools/xfsdist.py
+++ b/tools/xfsdist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# xfsdist Summarize XFS operation latency.
diff --git a/tools/xfsslower.py b/tools/xfsslower.py
index 3fbc96d..22a71cd 100755
--- a/tools/xfsslower.py
+++ b/tools/xfsslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# xfsslower Trace slow XFS operations.
diff --git a/tools/zfsdist.py b/tools/zfsdist.py
index 9c6d3e0..4418d80 100755
--- a/tools/zfsdist.py
+++ b/tools/zfsdist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# zfsdist Summarize ZFS operation latency.
diff --git a/tools/zfsslower.py b/tools/zfsslower.py
index 1e61de7..046d87a 100755
--- a/tools/zfsslower.py
+++ b/tools/zfsslower.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# @lint-avoid-python-3-compatibility-imports
#
# zfsslower Trace slow ZFS operations.
--
2.16.1