的PostgreSQL的版本9.4
參考The Statistics Collector
select pid, query from pg_stat_activity where waiting='t';
參考Function-Admin: pg_cancel_backend
select pg_cancel_backend(pid of the postgres process);
一個簡單的bash腳本。你甚至可以通過命令行的參數
#!/bin/bash
dbname="Test"
username="postgres"
vartest=`psql -d $dbname -U $username -h localhost -p 5432 -t -c "select pid from pg_stat_activity where waiting='f';"`
for p_var in ${vartest[@]}
do
# This is an admin function please read more on function-admin in the postgres documentation
# q_result= `psql -d $dbname -U $username -h localhost -p 5432 -t -c "SELECT pg_cancel_backend('$p_var');"`
# sanitiy check just grabs the pid and related query
q_result=`psql -d $dbname -U $username -h localhost -p 5432 -t -c "select pid, query from pg_stat_activity where pid='$p_var';"`
done