[HELP] PHP+SSH2+CENTOS_5
|
|
FiLE | Дата: Вторник, 13.03.2012, 00:35 | Сообщение # 1 |
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
| Привет всем. Незнаю, тему вроде правильно влепил. Вобщем помогите решить такую задачку, немогу справиться. Есть VDS (centos os), на ней серверочки сампа + простенькая панелька запуска серверов, написанная на php. Панелька работает с использованием SSH2, я это делал для того, чтобы можно было к панельке подключать несколько VDS.
Сервера запускаются, все отлично, но есть проблема с выключением сервера. Я путем недолгих манипуляций, сделал, чтобы сервер выключался через ркон (exit), по нажатию кнопки в панеле. Но это не вариант, как оказывается, есть свои минусы.
Вобщем, кто сталкивался или знает, как определить PID процесса (при запуске\последний процесс и т.п.) запущеного сервера, чтобы в дальнейшем процесс можно было оффнуть командой kill. Если не трудно, выложить код.
В гугле искал и впрочем ничего дельного не нашел.
|
|
|
|
AirKite | Дата: Вторник, 13.03.2012, 01:09 | Сообщение # 2 |
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
| ./samp03svr & должен вернуть PID.
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
|
|
|
FiLE | Дата: Вторник, 13.03.2012, 01:16 | Сообщение # 3 |
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
| AirKite, каким образом мне записать PID в переменную php-скрипта, чтобы далее этот PID внести в mysql?
Если быть точнее, вот код:
Code $connection = ssh2_connect($computer[adress], 22); ssh2_auth_password($connection, $computer[login], $computer[password]);
$cmd = "cd ".$server['link']." ; nohup ./samp03svr & > /dev/null & echo $!"; $PID = ssh2_exec($connection, $cmd);
По сути нужно продолжить код, чтобы узнать PID. echo $PID; выводит какую-то ерунду.
Сообщение отредактировал FiLE - Вторник, 13.03.2012, 01:21 |
|
|
|
AirKite | Дата: Вторник, 13.03.2012, 01:48 | Сообщение # 4 |
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
| Пробуй: Code $stream = ssh2_exec($connection, $cmd); stream_set_blocking($stream, true); $pid = intval(stream_get_line($stream, 100, "\n"));
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
|
|
|
FiLE | Дата: Вторник, 13.03.2012, 02:17 | Сообщение # 5 |
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
| AirKite, Спасибо, этот вариант сработал, оказывается все так просто, а я мучался. Показывает pid почти правильно, почти это значит показывает pid на +1 больше, да это мелочь. Как смог отблагодарил Тему можно оффать.
Сообщение отредактировал FiLE - Вторник, 13.03.2012, 02:18 |
|
|
|
AirKite | Дата: Вторник, 13.03.2012, 02:31 | Сообщение # 6 |
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
| FiLE, смотри, а то не во всех случаях будет показывать pid на 1 больше. Я рассчитывал на команду "./samp03svr & echo $!".
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
|
|
|