Ну и я не создаю фактически дочерний процесс, дочерний процесс создается форком (pcntl_fork), здесь же я запускаю независимый процес, с другим адресным пространством посредством системного вызова. Так что тут не будет зомби.
нет, зомби не рождается. я же передаю ПИД текущего процесса (в котором произошла фатальная ошибка) во вновь созданный, и тот киляет этот старый процесс (который мог бы стать зомби)
Ну я, наверное, не лучшее название выбрал просто для статьи.
Нужно было написать отказоустойчивого демона, который как птица феникс возрождается из пепла.
Поэтому и был описан механизм как это делалось. Ну а статью назвал так, потому что просил программиста из команды ловить фатал ероры, а он мне утверждал, что этого в php сделать невозможно в принципе. Поэтому разозлился и написал код, а потом и жту статью. :-)
Ну, кстати, благодаря статье бклаб узнал, что register_shutdown_function сейчас вызывается когда фаерится фатал ерор, раньше такого не было. :-)
Альянсов, думаю, не выйдет, т.к. им проще самми у себя визуализировать. Т.к. большие соц сети (вконтакте, одноклассники, фейсбук) — это интранет в интернете.
Визуализация контактов из вконтакте посредством джаббер транспорта, или других парсеров. будет перетягивать (потенциально, конечно) пользователей вконтакте на наш сайт. Поэтому, думаю, нас быстро закроют, скажем просто по Ай-Пи заблочат.
Поэтому было бы интересно попробовать просто визуализировать внутри этих сетей. Фейсбук, Контакт аппликейшн. Так мы бы не уводили пользователей с этих сайтов, и поидее, они бы не закрыли нас. Но в такой перспективе сам апликейшн должен быть платным, чтобы получать профит от этого для нас.
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 сейчас вызывается когда фаерится фатал ерор, раньше такого не было. :-)
Только у меня обработка более сложная, как раз создается вечный процесс, за счет того, что форкается этот же процесс в обработчике ф-ии 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");
}
пхп, кстати, 5.2.6.
в частности html_errors, т.к. это рабочий вариант.
<?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/мин
А удаление профала — есть в меню настроек
да, и у нас уже несколько десятчков тысяч пользователей.