Bash - kill

0

Zaimplementuj skrypt ubij.sh, który zakończy działanie wszystkich procesów o zadanej nazwie.

Przykład wywołania:

./ubij.sh loop.sh

Próbowałem to zrobić tak

#!/bin/bash
chmod -x kill.sh
read pidof
kill -9 $pidof

i tak

#!/bin/bash
chmod -x kill.sh
PID="pidof"
kill -9 $PID

ale raczej nie wychodzi

0
  1. Nie używaj kill -9, nigdy.
  2. man killall
0

@hauleth
Ad. 1. Dlaczemu? ;) Oczywiście, to jest komenda ostatniej szansy, ale co w niej złego?
Ad. 2. A zwłaszcza na Solarisie albo HP UX. To już prędzej man pgrep man pkill

Można też tak:
ps -e | awk '{if (/procname/) print $1}' | xargs kill -SIGXXXX

0

Po użyciu kill -9 mogą zostać nieposprzątane śmieci po programie, co może spowodować kłopoty podczas kolejnego restartu.

0

@Pyxis no ok, ale z drugiej strony SIGKILLa nie przechwycisz, SIGTERMa - tak. Także to bardziej kwestia tego, jak bardzo zależy nam na ubiciu procesu i jak bardzo jest on oporny.

0
  1. http://porkmail.org/era/unix/award.html#uuk9letter
  2. Dopóki nie odpalasz tego jako admin to nie ma problemu. Dodatkowo zakładałem, że OP pisze to na współcześnie używane systemy *niksowe (aka GNU lub BSD), bo gdyby administrował HP UX to raczej nie pytałby o takie proste rzeczy na publicznym forum.

1 użytkowników online, w tym zalogowanych: 0, gości: 1