LINUX.ORG.RU

убить процесс


0

0

Please help! С linux'ом почти не знаком, но очень надо сделать следующее: Задание: убить процесс по имени, т.е. >file_name имя_процесса причем имя_процесса может быть маской(допускаются символы *,?) Таким образом мы ищем все процессы с подходящими именами(ps ax - вроде выводит все процессы, имя будет 4-ой колонкой), затем спрашиваем пользователя хочет ли он убить процесс(для каждого из найденных) Примечание: спрашивать можно в текстовом режиме, т.е. нашли подходящие процессы, т.о. узнали и их номера для каждого из найденых: echo Are you want to kill process $process_name? read r if [[ $r -eq y ]] then kill -9 $номер_процесса fi конец На своем варианте не настаиваю, принимаются все ответные предложения. Заранее спасибо.

anonymous

Господа я понимаю что для спецов это не сложно, но я с linux Не знаком, а сделать это задание очень надо. Так что спасибо за ссылки на команды, но если кто может напишите мне скрипт целиком. Заранее спасибо

anonymous
()

Почти то, что просишь - если сам не разберешься, как подправить. 
могу попозже сделать -- сейчас некогда.

#!/bin/sh
#This script kills  all named processes with the same DISPLAY variable.
# Works only under Linux!!!

if [ "$1" = "" ] || [ "$1" = "-help" ] ; then
   echo "This script kills  all named processes."
   echo "Usage: $0 name"' [signal]'
   exit
fi

if [ "$2" = "" ]; then
   KILLSIG=9
else
   let KILLSIG=$2
   if  [ "$KILLSIG" = "0" ]; then
      echo "Usage: $0 name"' [signal]'
      echo "Use number 1 - 30 as a signal!"
      exit
   fi
fi

if [ "`echo $KILLSIG |grep '-'`" = "" ]; then
   KILLSIG=-$KILLSIG
fi

#Get list of all matching PID:
#PSIDTMP=`ps |grep -w $1| tr -s ' ' |sed 's/ //' | grep -v grep |grep -vw $0| sed 's/ .*//'`
PSIDTMP=`ps -A |grep -w $1|sed 's/^ *//' |sed 's/ .*//' |  grep -v grep |grep -vw $0`
# Process the list:
for II in $PSIDTMP ; do
#get DISPLAY variable for PID:
PDSPL=`cat /proc/${II}/environ | tr '\000' '\n' |grep ^DISPLAY |sed 's/^.*=//'`
#Compare with the current  DISPLAY variable:
if [ "$PDSPL" = "$DISPLAY" ]; then
#Matches! Kill it:
kill $KILLSIG $II
fi
done

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Обязательно попробую разобраться, но если напишешь исправленный вариант, буду очень благодарен. Также отдельное спасибо, если пояснишь основные шаги.

anonymous
()
Ответ на: комментарий от anonymous

Далеко больно топик ушел...

Если проблемы остались, пиши на
colonel_b@hotmail.com
(это я)

Только subj пиши по-русски, а то могу грохнуть вместе со спамом...

Die-Hard ★★★★★
()

не знаю как в линуксе но в солярисе и бсд есть pkill и pgrep

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.