The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как отсортировать вывод"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как отсортировать вывод"
Сообщение от Maxim Искать по авторуВ закладки(??) on 19-Окт-04, 02:13  (MSK)
Задача: Найти имя процесса по его PIDу и послать ему, например, SIGUSR1.

Текущая реализация:

#!/usr/local/bin/bash

if [ -z "$1" ]; then
   echo ""
   echo "Usage: $0 daemon_name"
   echo ""
   exit
fi

pid=`ps -ax | grep $1 | grep -v grep | awk '{print $1}'`

echo "PID is $pid"

#if [ ! $pid ]; then
#   echo "PID isn't active"
#else
#   `kill SIGUSR1 $pid`
#   exit
#fi


Проблема: grep отрабатывает честно, и грепит все процессы, которые включают в себя полученный аргумент. Т.е. хочу получить на выходе - "init", запускаю "./test.sh 1" и получаю список всех процессов, в id и именах которых есть единицы...

Подскажите, как правильно поступить в моей ситуации?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как отсортировать вывод"
Сообщение от MaximKuznetsov Искать по авторуВ закладки on 19-Окт-04, 02:37  (MSK)
>Задача: Найти имя процесса по его PIDу и послать ему, например, SIGUSR1.
>
>
>Текущая реализация:
>
>#!/usr/local/bin/bash
>
>if [ -z "$1" ]; then
>   echo ""
>   echo "Usage: $0 daemon_name"
>   echo ""
>   exit
>fi
>
>pid=`ps -ax | grep $1 | grep -v grep | awk '{print
>$1}'`
>
>echo "PID is $pid"
>
>#if [ ! $pid ]; then
>#   echo "PID isn't active"
>#else
>#   `kill SIGUSR1 $pid`
>#   exit
>#fi
>
>
>Проблема: grep отрабатывает честно, и грепит все процессы, которые включают в себя
>полученный аргумент. Т.е. хочу получить на выходе - "init", запускаю "./test.sh
>1" и получаю список всех процессов, в id и именах которых
>есть единицы...
>
>Подскажите, как правильно поступить в моей ситуации?

а killall чем вас не устраивает ?
например :
# killall -v -USR1 -$pid


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как отсортировать вывод"
Сообщение от Maxim Искать по авторуВ закладки(??) on 19-Окт-04, 09:43  (MSK)
>а killall чем вас не устраивает ?
>например :
># killall -v -USR1 -$pid

Меня устроит любой разумный вариант :о)

Проблема не в том, как послать сигнал, а как получить pid по заданному имени процесса. Нужно что-то типа квантификатора для grep'a :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как отсортировать вывод"
Сообщение от klalafuda emailИскать по авторуВ закладки on 19-Окт-04, 09:56  (MSK)
>>а killall чем вас не устраивает ?
>>например :
>># killall -v -USR1 -$pid
>
>Меня устроит любой разумный вариант :о)
>
>Проблема не в том, как послать сигнал, а как получить pid по
>заданному имени процесса. Нужно что-то типа квантификатора для grep'a :)

pkill -<signame> <procname>

$ pkill -HUP inetd
$ pkill -KILL init

// wbr

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Соблюдая лучшие традиции всех новичков... "
Сообщение от Maxim Искать по авторуВ закладки(??) on 19-Окт-04, 10:38  (MSK)
... а также невнимательных людей, забыл упомянуть, что у меня FreeBSD :)

Соответственно, что такое pkill знать не знаю, ведать не ведаю...


>pkill -<signame> <procname>
>
>$ pkill -HUP inetd
>$ pkill -KILL init

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Соблюдая лучшие традиции всех новичков... "
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 19-Окт-04, 13:38  (MSK)
>... а также невнимательных людей, забыл упомянуть, что у меня FreeBSD :)
>
>
>Соответственно, что такое pkill знать не знаю, ведать не ведаю...
>
>
>>pkill -<signame> <procname>
>>
>>$ pkill -HUP inetd
>>$ pkill -KILL init

Tak mozno:
ps ax | awk '{if(FNR==1){next}else{if($5~/<imja processa>/){print $1}}}'

P.S. Pravda pridetca nemnogo podumat kak odnozna4no videlit imja processa
iz mnogih drugih. Podumai kakoje nibud regexp.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Соблюдая лучшие традиции всех новичков... "
Сообщение от _dima Искать по авторуВ закладки on 19-Окт-04, 18:40  (MSK)
>>... а также невнимательных людей, забыл упомянуть, что у меня FreeBSD :)
>>
>>
>>Соответственно, что такое pkill знать не знаю, ведать не ведаю...
>>
>>
>>>pkill -<signame> <procname>
>>>
>>>$ pkill -HUP inetd
>>>$ pkill -KILL init
>
>Tak mozno:
>ps ax | awk '{if(FNR==1){next}else{if($5~/<imja processa>/){print $1}}}'
>
>P.S. Pravda pridetca nemnogo podumat kak odnozna4no videlit imja processa
>iz mnogih drugih. Podumai kakoje nibud regexp.

простите, а что такое "FNR" и "/< >/" - если это границы слова, то всё-таки пожалуй "\< \>"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Соблюдая лучшие традиции всех новичков... "
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 20-Окт-04, 10:05  (MSK)
>>>... а также невнимательных людей, забыл упомянуть, что у меня FreeBSD :)
>>>
>>>
>>>Соответственно, что такое pkill знать не знаю, ведать не ведаю...
>>>
>>>
>>>>pkill -<signame> <procname>
>>>>
>>>>$ pkill -HUP inetd
>>>>$ pkill -KILL init
>>
>>Tak mozno:
>>ps ax | awk '{if(FNR==1){next}else{if($5~/<imja processa>/){print $1}}}'
>>
>>P.S. Pravda pridetca nemnogo podumat kak odnozna4no videlit imja processa
>>iz mnogih drugih. Podumai kakoje nibud regexp.
>
>простите, а что такое "FNR" и "/< >/" - если это границы слова, то всё-таки пожалуй "\< \>"
1) FNR - man awk
2) /<imja processa>/==/imja processa/. Primer /syslog/. Nikakih granic slov tam net. Odna e6e raz gvorju, dannij primer est tolko primer, i dla realnogo ispolzovanija nado to4neje opredelit regexp, dla togo 4tobi to4neje videlit process.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как отсортировать вывод"
Сообщение от vitaly80 Искать по авторуВ закладки on 20-Окт-04, 08:18  (MSK)
свечу фонариком :)
man ps

ключ -o
пример ps -ax -o "command"
можно несколько -o
типа пример ps -ax -o "pid "-o "command"
-c тоже прикольный ключ :)

grep " blablabla "  - пробелы нужны чтобы грэпить только blablabla а не blablabla1,blablabla2 и т.д.

дальше сам разберешься :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "А ларчик просто открывался..."
Сообщение от Maxim Искать по авторуВ закладки(??) on 20-Окт-04, 14:46  (MSK)
Спасибо всем за участие и предложенные варианты, особенно vitaly80 за самое простое направление поиска решения проблемы :)

Остановился на:

ps -ax -p "445"
  PID  TT  STAT      TIME COMMAND
  445  ??  Is     0:00,00 /usr/local/sbin/mpd -b -p /var/run/mpd.pid

при том, что
ps -ax -p "3445"
  PID  TT  STAT      TIME COMMAND
3445  ??  S      0:10,66 /usr/local/sbin/sshd2


Все остальное - дело техники :)

Еще раз спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру