The OpenNET Project / Index page

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

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

"С аналог скрипта  kill `pidof myprogram`"  
Сообщение от pavlinux email(ok) on 10-Дек-06, 00:17 
Помогите, а то что-то я торможу...

Надо вставить C-код который обнаруживает запущен ли один или более
таких же процессов. И по результатам делать что нужно.

На bash это выглядит так

#!/bin/sh

PIDS=`pidof myprogram`;

if [ -z "$PIDS" ]
   then
       exec myprogram -a -b -c;
fi


Надо чтоб при наличии флага, скажем -1, НЕ запускалась ещё одна копия программы.

.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "С аналог скрипта  kill `pidof myprogram`"  
Сообщение от BigHo on 10-Дек-06, 11:25 
А если без абстракции :) ? А то появляется много дурацких вопросов, из-за которых и отвечать не охота. Ну например:
- нужен код конкретной программы, или функции ?
- что означает флаг "скажем -1" в рамках приведенного sh кода ?
- обязательно ли работать через PID файл и может ли быть в этом файле другая информация ?
- что означает "один и более" ? Их может быть более одного ? И насколько ?
- что за ОСь ?
- а нужно ли это вообще или это просто праздное любопытство ?

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "С аналог скрипта  kill `pidof myprogram`"  
Сообщение от pavlinux email(ok) on 18-Дек-06, 02:56 
> А если без абстракции :) ?
> А то появляется много дурацких вопросов, из-за которых и отвечать не охота.

> Ну например:
> - нужен код конкретной программы, или функции ?
     функции, pidof и killall уже написали :)

> - что означает флаг "скажем -1" в рамках приведенного sh кода ?

    Не разрешать запускать копии. (Помоему опять не догоним.)
    
>
>- обязательно ли работать через PID файл и может ли быть в
>   этом файле другая информация ?
Можно впихнуть static const спец.код, потом его искать в .dss у всех процессов :)
    
> - что означает "один и более" ? Их может быть более одного?
>  И насколько ?
   Бесконечность знаешь? Где-то рядом.

> - что за ОСь ?
  Linux 2.6.16 и дальше.
> - а нужно ли это вообще или это просто праздное любопытство ?
  Из любопытства вырос уже (частично). :)

>Вообщем как всегда - чтобы задать правильный вопрос, нужно знать более половины
>правильного ответа..

Короче, пока отвечал вспомнил про Netlink

NETLINK_CB(skb).dst_pid = 0;
NETLINK_CB(skb).dst_groups = 1;
netlink_broadcast(nl_sk, skb, 0, 1, GFP_KERNEL);

Кто отзовётся тот свой. Отзывалку вставляем в код. .... дальше сам додумаю :-P

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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