Pull to refresh
149
0
Игорь Миняйло @maghamed

Lead Architect, Magento an Adobe

Send message
Ну и я не создаю фактически дочерний процесс, дочерний процесс создается форком (pcntl_fork), здесь же я запускаю независимый процес, с другим адресным пространством посредством системного вызова. Так что тут не будет зомби.
да, и погода никчерту…
Ну а это мой лог куда это пишется

kill 11162: true

live

before fork (pid: 11170)

kill 11170: true

live

live

before fork (pid: 11202)

kill 11202: true

live

before fork (pid: 11174)

kill 11174: true

live

before fork (pid: 11580)

kill 11580: true

live

before fork (pid: 11584)

kill 11584: true
нет, зомби не рождается. я же передаю ПИД текущего процесса (в котором произошла фатальная ошибка) во вновь созданный, и тот киляет этот старый процесс (который мог бы стать зомби)

iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 26548 0.1 0.3 54628 7480 ttyp1 S 12:21 0:00 php index.php 26494
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 26548 0.1 0.3 54628 7480 ttyp1 S 12:21 0:00 php index.php 26494
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 26548 0.1 0.3 54628 7480 ttyp1 S 12:21 0:00 php index.php 26494
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 26548 0.0 0.3 54628 7480 ttyp1 S 12:21 0:00 php index.php 26494
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 26548 0.0 0.3 54628 7480 ttyp1 S 12:21 0:00 php index.php 26494
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27468 0.5 0.3 54632 7472 ttyp1 S 12:22 0:00 php index.php 27460
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27468 0.2 0.3 54632 7472 ttyp1 S 12:22 0:00 php index.php 27460
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27468 0.2 0.3 54632 7472 ttyp1 S 12:22 0:00 php index.php 27460
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27941 1.0 0.3 54628 7472 ttyp1 S 12:23 0:00 php index.php 27468
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27941 0.2 0.3 54628 7472 ttyp1 S 12:23 0:00 php index.php 27468
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 27941 0.0 0.3 54628 7484 ttyp1 S 12:23 0:00 php index.php 27468
iminyaylo@md-1:~$ ps -aux | grep php | grep index.php | grep -v grep
40449 29381 0.0 0.3 54628 7468 ttyp1 S 12:24 0:00 php index.php 29375

Видишь, кол-во процессов не растет, а их PID-ы меняются. Здесь нет зомби-процессов.
:-)

Ну я, наверное, не лучшее название выбрал просто для статьи.
Нужно было написать отказоустойчивого демона, который как птица феникс возрождается из пепла.

Поэтому и был описан механизм как это делалось. Ну а статью назвал так, потому что просил программиста из команды ловить фатал ероры, а он мне утверждал, что этого в php сделать невозможно в принципе. Поэтому разозлился и написал код, а потом и жту статью. :-)

Ну, кстати, благодаря статье бклаб узнал, что register_shutdown_function сейчас вызывается когда фаерится фатал ерор, раньше такого не было. :-)
Не понимаю, почему все пытаются ссылаться на статью с ©dkLab, там такой же метод как у меня описан. Логика таже.

Только у меня обработка более сложная, как раз создается вечный процесс, за счет того, что форкается этот же процесс в обработчике ф-ии ob_start.

system(«php tester.php ». getmypid(). " &" );

Ну и предотвращается варианты, когда эти недообработанные скрипты висят и засоряют память.

if(isset($_SERVER[«argv»][1])){
file_put_contents(«php://stderr», «kill {$_SERVER['argv'][1]}: ». var_export(posix_kill($_SERVER['argv'][1], 15), true)."\n");
}
могу выслать вам php.ini с моей локальной машины, под котороый работает.

пхп, кстати, 5.2.6.
нужно смотреть какие у вас настройки php

в частности html_errors, т.к. это рабочий вариант.
Можно через блокировки файлов. Это будет универсальней и кросс-платформенней, просто открывать файл c эксклюзивным локом.

<?php

$fp = fopen("/tmp/lock.txt", «w»);

if (flock($fp, LOCK_EX)) { // do an exclusive lock
//some logic here

} else {
die;
}

fclose($fp);

Мы пользуемся такой же схемой как и Вы :-) относительно проверки демона по порту.
Альянсов, думаю, не выйдет, т.к. им проще самми у себя визуализировать. Т.к. большие соц сети (вконтакте, одноклассники, фейсбук) — это интранет в интернете.

Визуализация контактов из вконтакте посредством джаббер транспорта, или других парсеров. будет перетягивать (потенциально, конечно) пользователей вконтакте на наш сайт. Поэтому, думаю, нас быстро закроют, скажем просто по Ай-Пи заблочат.

Поэтому было бы интересно попробовать просто визуализировать внутри этих сетей. Фейсбук, Контакт аппликейшн. Так мы бы не уводили пользователей с этих сайтов, и поидее, они бы не закрыли нас. Но в такой перспективе сам апликейшн должен быть платным, чтобы получать профит от этого для нас.

Да, спасибо, можно со слогами сделать. Но, честно-говоря, всегда думал, что удобней самому вводить часть фамилии в строке поиска, например, так

http://moederevo.com/Lastnames/search/мин
У нас уже есть функционал, который позволяет показывать пересечения текущего дерева с вашим и отображения общих друзей
сорри, прикола нет, описался, а потом копировал :-)
Нет, не причем :-)
Вы, наверное, вводили русские буквы для логина, а логин у нас становится сабдоменом, т.е %user_login%.moederevo.com

А удаление профала — есть в меню настроек
нет, не начнет :-)

да, и у нас уже несколько десятчков тысяч пользователей.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity