Запуск скриптов в фоновом режиме
В категорії Без рубрики, Статьї от 14 Березня, 2015. Автор adminДля возможности выполнения bash-подобных скриптов в Linux в с целом и в OpenWrt-версии оболочки busybox в частности существует легкая в применении инфраструктура: необходимо лишь добавить к строке запускаемого скрипта символ “&“. Но есть и менее очевидные частности.
Реализация простого запуска некоторого скрипта /srv/tools/script.sh в фоне:
# /srv/tools/script.sh &
Все бы хорошо, но запущенный таким образом скрипт проработает ровно до тех пор, пока вы залогинены на консоль сервера. При отключении от сервера скрипт автоматически завершится.
Для запуска скрипта без связи с сессией пользователя следует использовать утилиту nohup:
# nohup /srv/tools/script.sh &
В этом случае запущенный скрипт останется работать даже при отключении от сервера, но весь выводимый скриптом текст будет записываться в файл nohup.log, создаваемый в текущем каталоге, о чем nohup непосредственно и информирует сообщением nohup: appending output to nohup.out. При этом данный файл будет создан даже в том случае, если у скрипта никогда не будет никакого вывода.
Чтобы nohup.log никогда не создавался, перенаправляем stdout скрипта в /dev/null:
nohup /srv/tools/netstat.sh >/dev/null &
Все, теперь лишних файлов более не создается и скрипт останется работать при отключении от консоли.
Внимание! Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям, установите mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8.
В категорії Підказки от 8 Березня, 2015. Автор adminЧто делать, если при установке (восстановлении из резервной копии) битрикса вылезают подобные ошибки?
При наличии доступа к файлу php.ini, раскомментируйте (уберите ; вначале) строки и установите соответствующие значения
mbstring.func_overload=2
mbstring.internal_encoding=UTF-8
Эти настройки будут применимы для всех хостов.
Если нужно выборочно к некоторым — отредактируйте файл httpd.conf нужного виртуального хоста, добавьте также 2 строки
<VirtualHost >
…
…
php_admin_value mbstring.func_overload 2
php_admin_value mbstring.internal_encoding UTF-8
</VirtualHost>
Но если хостер такой злющий и не дает доступа к этим файлам ставьте в windows-1251 =))
При восстановлении сайта (utf-8) из резервной копии на хостинге, где нет mbstring.func_overload 2, можно на время в файле папка_сайта/bitrix/php_interface/dbconn.php закомментировать строку
define(“BX_UTF”, true);
И еще.. для PHP до версии 5.4 можно в .htaccess добавить 2 строки:
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
Но это не всегда срабатывает, зависит от настроек хостинга