Opracowałem przeszukiwacz w PHP, który analizuje adres URL z określonymi nagłówkami i umieszcza wszystkie adresy URL treści w kolejce. To działa dobrze.
Opracowałem ten kod w Ubuntu 14.04 i umieściłem plik .conf w folderze / etc / init z następującą zawartością:
# 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
Działa dobrze w systemie Ubuntu 14.04 i mogę uruchomić i zatrzymać demona za pomocą „uruchomienia przeszukiwacza usługi sudo” i „zatrzymania przeszukiwacza usługi sudo”
Teraz w środowisku produkcyjnym mam serwer Ubuntu 16.04 i umieszczam ten sam kod w tym samym folderze, ale kiedy próbuję uruchomić usługę, pojawia się komunikat „Nie można uruchomić crawler.service. Nie znaleziono jednostki crawler.service”
Czy możesz mi w tym pomóc?
pozdrowienia
ubuntu
daemon
ubuntu-16.04
Juanjo Aguilella Marés
źródło
źródło
Odpowiedzi:
Dodając do odpowiedzi @Juanjo Aguilella Marés, a po skopiowaniu / połączeniu skryptu
/etc/systemd/system
możesz chcieć automatycznie uruchomić go po uruchomieniu serwera:Źródło Digital Ocean
Warto również nie uruchamiać go jako root. Po prostu zmień
user
wiersz w skrypcie:źródło
Rozwiązałem problem:
a) Utwórz plik crawler.service w / etc / systemd / system z tym kodem:
mój plik bash zawiera różne wykonania równolegle do tego samego pliku php z tym kodem:
sen pomiędzy wykonaniami jest niezbędny, aby zapisać problem dotyczący szybkiego wykonania usługi.
Jeśli masz jakieś sugestie dotyczące rozwiązania, proszę o komentarz, nie mam dużego doświadczenia w plikach bash i plikach systemowych, ale w tej chwili działa dobrze.
źródło
System inicjujący dla 14.04 jest na starcie. System init dla 16.04 jest systemd. Powinieneś przekonwertować skrypt upstart na systemowy plik jednostki. Dostępnych jest również wiele innych zasobów .
źródło
1]. Aby utworzyć usługę, przejdź do / etc / systemd / system /
2]. Utwórz plik serviceName, np. ChatSocket.service
3]. Umieść treść w pliku, jak podano poniżej
4]. Załaduj ponownie konfigurację, naciskając:
sudo systemctl daemon-reload
5]. Domyślnie włącz usługę, więc kiedy usługa uruchamiania systemu uruchomi się automatycznie:
sudo systemctl enable my_service.service
6]. Uruchom usługę za pomocą poniższego polecenia:
sudo systemctl start my_service.service
źródło