GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erhalte ich die PID eines Prozesses und rufe im Shell-Skript kill -9 darauf auf?

Zuerst; "kill -9" sollte der letzte Ausweg sein.

Sie können den kill verwenden Befehl, um verschiedene Signale an einen Prozess zu senden. Das von kill gesendete Standardsignal ist 15 (genannt SIGTERM). Prozesse fangen normalerweise dieses Signal ab, bereinigen und beenden sich dann. Wenn Sie das SIGKILL-Signal senden (-9 ) hat ein Prozess keine andere Wahl, als sofort zu beenden. Dies kann zu beschädigten Dateien führen und Zustandsdateien hinterlassen und Sockets öffnen, die Probleme verursachen können, wenn Sie den Prozess neu starten. Die -9 Signal kann von einem Prozess nicht ignoriert werden.

So würde ich es machen:

#!/bin/bash

# Getting the PID of the process
PID=`pgrep gld_http`

# Number of seconds to wait before using "kill -9"
WAIT_SECONDS=10

# Counter to keep count of how many seconds have passed
count=0

while kill $PID > /dev/null
do
    # Wait for one second
    sleep 1
    # Increment the second counter
    ((count++))

    # Has the process been killed? If so, exit the loop.
    if ! ps -p $PID > /dev/null ; then
        break
    fi

    # Have we exceeded $WAIT_SECONDS? If so, kill the process with "kill -9"
    # and exit the loop
    if [ $count -gt $WAIT_SECONDS ]; then
        kill -9 $PID
        break
    fi
done
echo "Process has been killed after $count seconds."

pidof gld_http sollte funktionieren, wenn es auf Ihrem System installiert ist.

man pidof sagt:

Pidof  finds  the process id’s (pids) of the named programs. It prints those id’s on the standard output.

BEARBEITEN:

Für Ihre Bewerbung können Sie command substitution verwenden :

kill -9 $(pidof gld_http)

Wie @arnefm erwähnt hat, kill -9 sollte als letzter Ausweg verwendet werden.


Linux
  1. Wie bekomme ich den Namen des aktuellen Git-Zweigs in eine Variable in einem Shell-Skript?

  2. Wie bekomme ich den PYTHONPATH in der Shell?

  3. Wie bekomme ich die Prozess-ID, um einen Nohup-Prozess zu beenden?

  4. So erhalten Sie die PID von einem gegabelten untergeordneten Prozess im Shell-Skript

  5. Wie bekomme ich PID nach Prozessname?

So finden Sie die Prozess-ID eines Programms und beenden es [Kurztipp]

Wie erhalte ich den Distributionsnamen und die Versionsnummer in einem einfachen Shell-Skript?

So finden Sie die PID und PPID eines Prozesses in Linux

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus

Wie erhalte ich den Exit-Code des erzeugten Prozesses im erwarteten Shell-Skript?

Wie bekomme ich nur den Benutzer, die PID und den Befehl, der für einen bestimmten Prozess ausgeführt wird? (Ubuntu 11.10)