⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stop-gtk-server

📁 gtk_server的源代码
💻
字号:
#!/bin/sh## Script to kill GTK-server processes which have not been exited# properly by a client program.## October 6, 2006 until july 8, 2008 - PvE.# December 2009: adjustments for MacOSX - PvE.#---------------------------------------------------------------# Define temporary file to dump processlistPROCESS=/tmp/process.txt# Determine platformPLATFORM=`uname`# Check usageif [ "$#" -eq 0 ]then    echo    echo "*** Stop GTK-server processes ***"    echo    echo "Usage: stop-gtk-server <[-]stdin> | <[-]tcp> | <[-]udp> | <[-]fifo> | <[-]ipc> | <[-]all> | <[-]show>"    echo    exit 1fi# Dump processlist in temporary fileps aux | grep -v stop-gtk-server > $PROCESS# Check if we are going to kill FIFO gtk-server processesif [ $1 = "fifo" ]then    # Determine FIFO processes    GTK=`awk '/gtk-server fifo/ {print $2}' $PROCESS`    # Determine pipe files    FILES=`awk '{gsub(/=/, " ")} /gtk-server fifo/ {print $13}' $PROCESS`elif [ $1 = "-fifo" ]then    # Determine FIFO processes    GTK=`awk '/gtk-server -fifo/ {print $2}' $PROCESS`    # Determine pipe files    FILES=`awk '{gsub(/=/, " ")} /gtk-server -fifo/ {print $13}' $PROCESS`# Check on TCP processelif [ $1 = "tcp" ]then    GTK=`awk '/gtk-server tcp/ {print $2}' $PROCESS`elif [ $1 = "-tcp" ]then    GTK=`awk '/gtk-server -tcp/ {print $2}' $PROCESS`# Check on UDP processelif [ $1 = "udp" ]then    GTK=`awk '/gtk-server udp/ {print $2}' $PROCESS`elif [ $1 = "-udp" ]then    GTK=`awk '/gtk-server -udp/ {print $2}' $PROCESS`# Check if we are going to kill STDIN gtk-server processeselif [ $1 = "stdin" ]then    GTK=`awk '/gtk-server stdin/ {print $2}' $PROCESS`elif [ $1 = "-stdin" ]then    GTK=`awk '/gtk-server -stdin/ {print $2}' $PROCESS`# Check if we are going to kill IPC gtk-server processeselif [ $1 = "ipc" ]then    GTK=`awk '/gtk-server ipc/ {print $2}' $PROCESS`    # Determine message queues    IPC=`awk '{gsub(/=/, " ")} /gtk-server ipc/ {print $13}' $PROCESS`elif [ $1 = "-ipc" ]then    GTK=`awk '/gtk-server -ipc/ {print $2}' $PROCESS`    # Determine message queues    IPC=`awk '{gsub(/=/, " ")} /gtk-server -ipc/ {print $13}' $PROCESS`# Check if we are going to kill ALL gtk-server processeselif [ $1 = "all" -o $1 = "-all" ]then    # Determine processes    GTK=`awk '/gtk-server / {print $2}' $PROCESS`    # Determine pipe files    FILES=`awk '{gsub(/=/, " ")} /gtk-server fifo/ {print $13}' $PROCESS`    FILES="$FILES `awk '{gsub(/=/, " ")} /gtk-server -fifo/ {print $13}' $PROCESS`"    # Determine message queues    IPC=`awk '{gsub(/=/, " ")} /gtk-server ipc/ {print $13}' $PROCESS`    IPC="$IPC `awk '{gsub(/=/, " ")} /gtk-server -ipc/ {print $13}' $PROCESS`"# Check if we are going to kill ALL gtk-server processeselif [ $1 = "show" -o $1 = "-show" ]then    # Determine processes    echo    GTK=`awk '/gtk-server / {print}' $PROCESS`    if [ -z "${GTK}" ]    then	echo "No GTK-server processes found!"    else	awk '/gtk-server / {print $1, $2, $9, $11, $12, $13, $14, $15, $16, $17, $18}' $PROCESS    fi    echo    exit 0# Generate error warning -> argument not recognizedelse    echo "Argument not recognized!"    echo "Run 'stop-gtk-server' to see usage."    exit -1fi# Kill the GTK-server processesfor i in $GTKdo    kill -9 ${i}    echo "Process ${i} stopped."done# Remove PIPE files if they existfor i in $FILESdo    if [ -p "${i}" ]    then	rm ${i}	echo "Pipefile ${i} removed."    fidone# Remove message queues if they existif [ "`expr "$PLATFORM" : '.*\(BSD\)'`" = "BSD" ]then    QUEUE=`ipcs -q | awk '/[0123456789]/ {printf "%d ", $3}'`elif [ "`expr "$PLATFORM" : '.*\(Darwin\)'`" = "Darwin" ]then    QUEUE=`ipcs -q | awk '/0x/ {printf "%d ", $3}'`else    QUEUE=`ipcs -q | awk '/[0123456789]/ {printf "%d ", strtonum($1)}'`fifor k in $IPCdo    for j in $QUEUE    do	if [ "$k" = "$j" ]	then	    if [ "`expr "$PLATFORM" : '.*\(BSD\)'`" = "BSD" ]	    then		ID=`ipcs -q | awk -v ARG=$k '/[0123456789]/ {if ($3==ARG) print $2}'`	    elif [ "`expr "$PLATFORM" : '.*\(Darwin\)'`" = "Darwin" ]	    then		ID=`ipcs -q | awk -v ARG=$k '/0x/ {if ($3==ARG) print $2}'`	    else		ID=`ipcs -q | awk -v ARG=$k '/[0123456789]/ {if (strtonum($1)==ARG) print $2}'`	    fi	    ipcrm -q $ID	    echo "Message queue ${ID} removed."	fi    donedone# Tell if there are no processes foundif [ -z "$GTK" ]then    echo    echo "No GTK-server processes found!"    echofi# Remove temporary filerm $PROCESSexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -