Управление демоном из web-а

Discussion in 'PHP' started by furang, 23 Oct 2011.

  1. furang

    furang Elder - Старейшина

    Joined:
    7 Apr 2007
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Добрый день.
    Прошу совета у тех кто с подобным сталкивался.
    Есть демон. Написан на С. Запущеный под рутом, но потом понижает права до nobody.
    Есть инит скрипт под него /etc/init.d/daemon start|stop
    Не могу понять как реализовать механизм управления им и проверки статуса через веб (через php).
    В идеале чтоб была форма с двумя кнопками "старт" и "стоп". Если он запущен, то "старт" неактивна. Если не запущен, то "стоп" неактивна.
    С реализацией я справлюсь. Идею только подкиньте. Вся проблема в том, что демона надо под рутом пускать. Я пока прикинул идею настроить sudo и разрешить пхп запускать тот скрипт под рутом. но может у кого-то есть более элегантная идея?
    Заранее благодарен за внимание.
     
  2. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Можете выложить исходник демона?
    Мне просто интересно как он написан.
     
  3. furang

    furang Elder - Старейшина

    Joined:
    7 Apr 2007
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Нет не могу. Написан без особых изысков. Создает поток, отключает stdin, stdout,stderr. потом setuid подобные функции и потом уже полезная нагрузка.
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    furang создавайте pid файл и проверяйте жив ли процесс. Или же с помощью программы pidof это делайте.
    Вполне нормальная идея настроить /etc/sudoers. Чем она вам не нравится?
     
    _________________________
  5. furang

    furang Elder - Старейшина

    Joined:
    7 Apr 2007
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Ну это одно из возможных решений. Просто все это будет таскаться с системы на систему. Хотелось бы все уладить на уровне кода , и меньше лезть в системные файлы.
    Ну и плюс лучше рассмотреть несколько вариантов, взвесить и тогда уже принимать решение.