- 1
- 2
- 3
- 4
function runIcqBot($username, $password) {
$command = "nohup php-fcgi process.php ". $username ." ". $password ." > logs/".$username.".log &";
shell_exec($command);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
function runIcqBot($username, $password) {
$command = "nohup php-fcgi process.php ". $username ." ". $password ." > logs/".$username.".log &";
shell_exec($command);
}
И похеру на безопасность... Зато ICQ-клиент прямо в браузере!
raorn 13.11.2010 11:10 # +4
1. для каждого соединения запускается shell_exec("micq с опциями &");
2. запускается ps(1), зохавывается его вывод и разбивается на строки;
3. выполняется getpid(2);
4. далее, проходим построчно по выхлопу от ps(1) и ищем там запущенный ps(1), у которого PPID равен полученному на шаге 3;
5. PID из предыдущей строчки будет pid'ом процесса micq;
Ну и по этому полученному PID'у принимается решение, надо ли запускать новый процесс для этого UIN'а.
Это отлично работает на абсолютно пустом сервере при работе в один поток (как собсно это и тестировалось девеломпердами). Сервис благополучно здох через две минуты нагрузочного тестирования. Весь комизм ситуации заключался в том, что библиотеку для работы с асичкой писали одни люди (отдел R&D), а сервис, который через неё работает - другие, которые как раз и отвечали за запуск этого сервиса в production.
bugmenot 13.11.2010 19:24 # 0
Мистер Хэнки 13.11.2010 19:37 # +2
в скайпе или жабе далеко не все сидят пока, поэтому приходится
bugmenot 13.11.2010 20:03 # 0
в соответствии с вашей посылкой - если хотя бы один хомяк поставил себе...
andremacareno 13.11.2010 20:57 # +2
Int 15.11.2010 19:37 # −2
bugmenot 15.11.2010 19:55 # +1
<LOL>Баг високосного года, при котором 1 марта программа не запускалась без редактирования конфигурационных файлов или изменения даты на компьютере</LOL>
Int 18.11.2010 10:56 # 0
Lure Of Chaos 13.11.2010 20:28 # 0
bugmenot 13.11.2010 21:05 # 0
eth0 13.11.2010 21:45 # −1
bugmenot 13.11.2010 21:54 # 0
dwinner 13.11.2010 21:31 # −1
koodeer 14.11.2010 10:52 # −1