Принимаем аргументы из командной строки

Вот как обычно бывает: Нам нужно написать малюсенький консольный скрипт бекапа, который, может запускаться из крона, и при этом скрипт должен принимать параметры для соединения с базой данных. Функции argv и argc Самое простейшее что мы начнём писать будет выглядеть примерно так: cli-argv-argc.php // Ожидаем что скрипт будет вызываться с такими параметрами: // php backup.php dbuser dbpassword database host if ($argc != 5) { die(PHP_EOL . 'Use: php backup....

July 21, 2011 · ukko

Консольные программы для работы с ipc функциями

Наверняка после обзора очередей, сигналов, общей памяти и семафоров, появляется особая нужда в быстрых системных инструментах. Так как эти функции из php только транслируются на уровень ядра системы, поэтому многие инструменты уже разработаны и служат системным программистам верой и правдой уже много лет :-) sysctl С помощью этой утилиты можно просмотреть и отредактировать некоторые параметры системы. Например: u% sudo sysctl -a | grep queue error: permission denied on key 'vm.compact_memory' error: "Invalid argument" reading key "fs....

July 14, 2011 · ukko

Демоны, shared memory и семафоры

Итак, продолжим тему системного программирования на php. Мы уже научились работать с очередями, по которым можно пересылать небольшие системные сообщения, и наверняка, столкнулись с задачей передавать большие объёмы данных. В наших любимых системах типа System V уже давно решена задача быстрой передачи и сохранения больших данных в памяти. И этот механизм называется Shared Memory. Если вкратце, то данные в Shared Memory живут до перезагрузки системы. Так как данные находятся в памяти, то работают они намного быстрее чем если бы сохранялись в базе, где-нибудь в файле, или, прости господи, на стороннем сетевом ресурсе....

July 5, 2011 · ukko

Демоны — очереди сообщений

Всем привет! В предыдущих выпусках мы уже узнали как можно создавать простых демонов, как правильно посылать демонам сигналы, и эти же самые, принятые сигналы, корректно обрабатывать. Теперь мы вплотную подошли к моменту, когда наш демон должен научиться общаться с другими программами, или сам с собой, но в разных экземплярах. В мире unix, существует немыслимое множество способов передать команду или сообщение от демона к веб-скрипту и наборот. Но сейчас я хочу рассказать только про очереди сообщений — «System V IPC Messages Queues»....

June 27, 2011 · ukko

Демоны — сигналы

Демоны — сигналы Итак, овладев навыками создания простейшего демона, нам нужно научить его принимать сигналы из внешнего мира. Внимание! В статье требуется расширение php pcntl Сигналы — введение Отправка сигналов демону, как и любой другой программе в unix системах, выполняется совершенно нелогичной командой «kill». И для нас очень важно что бы программа могла правильно отработать своё «убиение». Завершить все незавершённые дела, или оставить их другому демону. Убийство происходит посредством передачи программе kill специального системного сигнала, например SIGTERM и идентификатора процесса PID....

June 20, 2011 · ukko

Демоны — Основы

Сегодня я расскажу один удивительный факт: Большинство веб-разработчиков ни разу в своей жизни не писали демонов. И не то что бы им это было не нужно, они просто никогда не задумывались о том что бы написать демона. Внимание! В статье требуется расширение php pcntl Введение Иногда их даже можно понять. Ведь все мы привыкли считать что прекрасно знаем как работает сайт, знаем наизусть эту идеологию MVC и забивать свою голову чем-то лишним нам совершенно не нужно....

May 29, 2011 · ukko