PDA

Показать полную графическую версию : Управление множеством однотипных программ


Паркан
25-03-2013, 21:26
Есть сайт, там пользователи, есть машинка, где стоит сайт.
Хочу реализовать пользователям функцию запуска программ. Все пользователи смогут запускать свою версию программы.
Так вот, нужно как то распределить эти программы для пользоватей, что бы 1 юзер мог использовать только 1 свою программу. Программы работают в фоновом режиме.
Вот, например, разложил я проги:
../users/1/Его_программа
../users/2/Его_программа
../users/n/Его_программа
Но проблема в том, что неизвестно какая из работающих программ кому принадлежит, если надо его вырубить.
Есть идея создать БД, при запуске снимать какой-либо уникальный ключ программы(одна программа - один порт), записывать его в БД с php, далее выключать обратным ходом. Но программы могут "падать" и еще и перезагрузка сервера бывает.
Нужна теория, помощь, как организовать такую штуку, типа хостинга получается, но не совсем.

vadblm
25-03-2013, 21:39
Курите chroot

AMDBulldozer
25-03-2013, 22:59
Но проблема в том, что неизвестно какая из работающих программ кому принадлежит, если надо его вырубить. »

Не понял эту фразу. Вы же знаете владельца каждого процесса? (ps aux или fuser -u, если осуществляется доступ к определенному файлу). Что понимается под словом "вырубить"? Убить процесс? Выкинуть из системы? Запретить последующий вход? Всё это легко реализуется.

Паркан
25-03-2013, 23:11
Не понял эту фразу. Вы же знаете владельца каждого процесса? (ps aux или fuser -u, если осуществляется доступ к определенному файлу). Что понимается под словом "вырубить"? Убить процесс? Выкинуть из системы? Запретить последующий вход? Всё это легко реализуется. »
На уровне сайта я его знаю.
Знаю его логин, порт для программы, я могу перейдя по папке ../users/port при помощи пхп запустить его программу. Но как в этот момент перехватить данные для идентификации пользователя. Убить - выключить с возможностью включить заново. Есть еще фтп сервер, пользователи могут к нему подключаться.




© OSzone.net 2001-2012