Я разработал сканер на PHP, который анализирует URL с конкретными заголовками и помещает все URL контента в очередь. Работает нормально.
Я разработал этот код в Ubuntu 14.04 и поместил файл .conf в папку / etc / init со следующим содержимым:
# Info
description "Warm the varnish to get the list of products"
author "Juanjo Aguilella"
# Events
start on startup
stop on shutdown
# Automatically respawn
respawn
respawn limit 100 5
# Run the script
# Note, in this example, if your PHP script return
# the string "ERROR", the daemon will stop itself.
script
[ $(exec /usr/bin/php -f /var/www/crawler.php) = 'ERROR' ] && ( stop; exit 1; )
end script
Он отлично работает в Ubuntu 14.04, и я могу запускать и останавливать демон, используя «sudo service crawler start» и «sudo service crawler stop»
Теперь в производственной среде у меня есть сервер Ubuntu 16.04, и я помещаю тот же код в ту же папку, но когда я пытаюсь запустить службу, я получаю сообщение «Не удалось запустить crawler.service. Unit crawler.service not found»
Можете ли вы помочь мне с этим?
С уважением
ubuntu
daemon
ubuntu-16.04
Хуанхо Агилелла Марес
источник
источник
Ответы:
Добавляя к ответу @Juanjo Aguilella Marés, и после того, как вы скопировали / связали свой скрипт
/etc/systemd/system
, вы можете автоматически запустить его при запуске сервера:Источник Digital Ocean
Это также хорошая идея, чтобы не запускать его от имени пользователя root. Просто измените
user
строку в вашем скрипте:источник
Я решил проблему:
а) Создайте файл crawler.service в / etc / systemd / system с этим кодом:
Мой bash-файл содержит различные исполнения, параллельные одному и тому же php-файлу с этим кодом:
сон между исполнениями необходим для того, чтобы избежать проблемы с быстрым выполнением сервиса.
Если у вас есть какие-либо предложения по поводу решения, пожалуйста, прокомментируйте, у меня нет большого опыта работы с bash-файлами и файлами systemd, но на данный момент работает нормально.
источник
Система инициализации для 14.04 является выскочкой. Система init для 16.04 является systemd. Вы должны преобразовать ваш скрипт upstart в системный файл systemd . Есть также много других доступных ресурсов .
источник
1]. Для создания сервиса перейдите в / etc / systemd / system /
2]. Создайте файл serviceName, например, chatSocket.service
3]. Поместите содержимое в файл, как указано ниже
4]. Перезагрузите конфигурацию, нажав:
sudo systemctl daemon-reload
5]. Включите службу по умолчанию, чтобы при запуске системы служба запускалась автоматически:
sudo systemctl enable my_service.service
6]. Запустите свой сервис, используя команду ниже:
sudo systemctl start my_service.service
источник