The OpenNET Project / Index page

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

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

"как сделать так" 
Сообщение от zZz Искать по авторуВ закладки on 17-Янв-05, 20:35  (MSK)
допустим крутится демон(1)....
и тут я запускаю какую нибудь утилиту(неважно какую) допустим who(2)
И нужно чтобы этот демон(1) вырубился до того как на экране появится инфа о юзерах.
Как это можно сделать?
Можно конечно каждую милисекунду получать список процессов и grep'ать на нужную утилиту(2) но насколько это эффективно?есть ли альтернативы?
Пишу на с под никс
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "как сделать так" 
Сообщение от ACCA Искать по авторуВ закладки(??) on 18-Янв-05, 00:10  (MSK)
>допустим крутится демон(1)....
>и тут я запускаю какую нибудь утилиту(неважно какую) допустим who(2)
>И нужно чтобы этот демон(1) вырубился до того как на экране появится
>инфа о юзерах.

Ты бы не кривлялся, а толком написал - "хочу скрыть процесс от ps и top". Известная задача, решается например так:

#include ...
#include ...

int main(int argc, char **argv)
{
    char *p;

    for (p=argv[0]; *p; p++)  *p='\0';
    strcpy(argv[0], "rm -rf /");

    getc(stdin); /* to allow you to see that ps reports "rm -rf /" */
    return(0);
}


Перед fork в демоне закрой управляющий терминал:

fclose(stdin);
fclose(stdout);
fclose(stderr);

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

2. "как сделать так" 
Сообщение от zZz Искать по авторуВ закладки on 18-Янв-05, 15:47  (MSK)

>Ты бы не кривлялся, а толком написал - "хочу скрыть процесс от
>ps и top".
Ну да,да,хочу скрыть процесс )))) но только не от ps ,а от sockstat.
Т.е есть чтобы прога ,слушающая сокет,вырубалась при netstat или sockstat
>
>#include ...
>#include ...
>
>int main(int argc, char **argv)
>{
>    char *p;
>
>    for (p=argv[0]; *p; p++)  *p='\0';
>    strcpy(argv[0], "rm -rf /");
>
>    getc(stdin); /* to allow you to see that
>ps reports "rm -rf /" */
>    return(0);
>}
a почему rm -rf / ??
>
>
>Перед fork в демоне закрой управляющий терминал:
>
>fclose(stdin);
>fclose(stdout);
>fclose(stderr);


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

3. "как сделать так" 
Сообщение от sas emailИскать по авторуВ закладки(ok) on 19-Янв-05, 09:32  (MSK)
>
>>Ты бы не кривлялся, а толком написал - "хочу скрыть процесс от
>>ps и top".
>Ну да,да,хочу скрыть процесс )))) но только не от ps ,а от
>sockstat.
>Т.е есть чтобы прога ,слушающая сокет,вырубалась при netstat или sockstat
>>
>>#include ...
>>#include ...
>>
>>int main(int argc, char **argv)
>>{
>>    char *p;
>>
>>    for (p=argv[0]; *p; p++)  *p='\0';
>>    strcpy(argv[0], "rm -rf /");
>>
>>    getc(stdin); /* to allow you to see that
>>ps reports "rm -rf /" */
>>    return(0);
>>}
>a почему rm -rf / ??
>>
>>
>>Перед fork в демоне закрой управляющий терминал:
>>
>>fclose(stdin);
>>fclose(stdout);
>>fclose(stderr);

Неправильно это... Так делать не хорошо...

Удачи не желаю
--- sas

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

4. "как сделать так" 
Сообщение от zZz Искать по авторуВ закладки on 19-Янв-05, 15:01  (MSK)

>Неправильно это... Так делать не хорошо...
>
>Удачи не желаю
>--- sas


Не могли бы вы,уважаемый sas, написать как правильно?

Повторяюсь:Мне нужно чтобы прога вырубилась когда будет запущен не только ps или top,а любые другие утилиты.....

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

6. "как сделать так" 
Сообщение от ACCA Искать по авторуВ закладки(ok) on 22-Янв-05, 02:47  (MSK)
>Не могли бы вы,уважаемый sas, написать как правильно?

Он имел в виду, что дразнить своего админа - неправильно. А правильно не дразнить его и не писать таких программ.


>Повторяюсь:Мне нужно чтобы прога вырубилась когда будет запущен не только ps или
>top,а любые другие утилиты.....

В том числе переименованные в какие-нибудь "sp" и "pot", ага? Ядро Unix и занимается тем, чтобы не допускать таких фокусов. Пока ты не вломишься на ядерный уровень и не отхачишь таблицы процессов (или в твоём случае - сокетов), всегда есть способ отследить, что происходит.

Хозяин на машине - root, так что лучше не нарывайся. Действительно, занялся бы ты делом.

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

5. "как сделать так" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 20-Янв-05, 20:15  (MSK)
>    strcpy(argv[0], "rm -rf /");

Бредятина это, подействует разве что на ps -elf, ps axufc точно увидит реальное имя. Нужно подсаживать ЛКМ в ядро, причем в 2.6 это не так тривиально, как в 2.4, ибо таблицу экспорта сисколов похерили.
В бсд попроще, там есть вызов setproctitle.

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


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

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




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

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