URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3530
[ Назад ]

Исходное сообщение
"как из программы С запустить shutdown -r now"

Отправлено matveev , 29-Окт-04 12:32 
как из программы С запустить команду "shutdown -r now" или какую либо другую.

Содержание

Сообщения в этом обсуждении
"как из программы С запустить shutdown -r now"
Отправлено klalafuda , 29-Окт-04 13:28 
>как из программы С запустить команду "shutdown -r now" или какую либо
>другую.

man system
man exec

// wbr


"как из программы С запустить shutdown -r now"
Отправлено matveev , 29-Окт-04 14:33 
>>как из программы С запустить команду "shutdown -r now" или какую либо
>>другую.
>
>man system
>man exec
>
>// wbr

А написать сложно? Я не из-за грубости, поймите интернет рвется постоянно, дистрибутива нет, а нужно как всегда очень срочно.Из того что мог нарыть в интернете - int system(const char *s), а как правильно написать c "shutdown - r now"


"как из программы С запустить shutdown -r now"
Отправлено klalafuda , 29-Окт-04 14:55 
>>>как из программы С запустить команду "shutdown -r now" или какую либо
>>>другую.
>>
>>man system
>>man exec
>>
>>// wbr
>
>А написать сложно? Я не из-за грубости, поймите интернет рвется постоянно, дистрибутива
>нет, а нужно как всегда очень срочно.Из того что мог нарыть
>в интернете - int system(const char *s), а как правильно написать
>c "shutdown - r now"

---cut---
#include <stdlib.h>

int
main()
{
    system("shutdown -r now");
    return 0;
}
---cut---

// wbr


"как из программы С запустить shutdown -r now"
Отправлено matveev , 29-Окт-04 14:59 
>>>>как из программы С запустить команду "shutdown -r now" или какую либо
>>>>другую.
>>>
>>>man system
>>>man exec
>>>
>>>// wbr
>>
>>А написать сложно? Я не из-за грубости, поймите интернет рвется постоянно, дистрибутива
>>нет, а нужно как всегда очень срочно.Из того что мог нарыть
>>в интернете - int system(const char *s), а как правильно написать
>>c "shutdown - r now"
>
>---cut---
>#include <stdlib.h>
>
>int
>main()
>{
>    system("shutdown -r now");
>    return 0;
>}
>---cut---
>
>// wbr
Огромное спасибо, второй раз спасибо за понимание и быстрый ответ.!!!

"как из программы С запустить shutdown -r now"
Отправлено Аноним , 29-Окт-04 18:49 
более корректно непользоватся system, а послать init SIGINT напрямую - например вот так:

#include <sys/types.h>
#include <signal.h>

int
main(int argc, char **argv)
{
    kill(1, SIGINT);
    return (EXIT_SUCCESS);
}


"как из программы С запустить shutdown -r now"
Отправлено klalafuda , 01-Ноя-04 07:52 
>более корректно непользоватся system, а послать init SIGINT напрямую - например вот
>так:
>
>#include <sys/types.h>
>#include <signal.h>
>
>int
>main(int argc, char **argv)
>{
>    kill(1, SIGINT);
>    return (EXIT_SUCCESS);
>}

..это если у вас root.
а если нет?
я от пользователя перегружаю машину по shutdown -r now.
по той простой причине, что я в группе wheel а на shutdown suid и проверка прав.
но мне не нужно для этого рута.
а еще shutdown идет по rc.d, что есть good.
и еще масса полезностей.

ps: идея понятна, почему стоит использовать именно shutdown а не валить init, что совершенно некорректно? :)

// wbr