Sign in Join
Wiki copytemporary

Daemons and Services/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Daemons and Services/pl

OldNewLine
1+<div style="font-size:1.88em;margin:0.75em 0;">
2+
3+Demony i usługi
4+
5+</div>
6+
7+## Czym są demony, usługi i agenci?
8+
9+*Demony* (ang. deamons) Uniksa i *usługi* (ang. services) Windows to programy działające w całym systemie bez interakcji użytkownika; *Agenci* (ang. agents) MacOS to programy dla użytkowników (porównaj demony ogólnosystemowe), które mogą działać z interakcją użytkownika lub bez niej. Chociaż nazewnictwo jest różne, ich funkcja jest podobna: na przykład serwery **www** lub **ftp** są nazywane demonami pod Linuksem, a usługami pod Windows. Ponieważ nie wchodzą w bezpośrednią interakcję z użytkownikiem, na początku zamykają swoje deskryptory stdin, stdout i stderr.
10+
11+Dzięki Free Pascal, Lazarus można pisać te demony/usługi niezależnie od platformy za pomocą pakietu Lazarus lazdaemon. Aby uniknąć konfliktów nazw z komponentami Delphi, klasy te nazywane są 'demonami' (daemons).
12+
13+## Instalacja LazDaemon
14+
15+Zanim zaczniesz, zainstaluj pakiet lazdaemon. Albo przez menu Pakiet -\> Instaluj/odinstaluj pakiety... i wybranie do z listy Pakietów do zainstalowania, albo przez otwarcie/instalację pliku lpk bezpośrednio ze cieżki z zainstalowanym Lazarusem: lazarus/components/daemon/lazdemon.lpk. Ten pakiet instaluje kilka nowych komponentów i elementów menu w IDE:
16+
17+W menu **Plik - Nowy...:**, w oknie dialogowym pojawią się 3 nowe pozycje pod nagłówkiem: **"Daemon (service) applications":**
18+
19+- Daemon (service) applications
20+- Daemon Module
21+- Daemon mapper
22+
23+## Klasy
24+
25+### TCustomDaemon
26+
27+To jest potomek TDataModule, który wykonuje całą pracę. Może być kilka klas i/lub instancji TCustomDaemons działających w tym samym czasie i w tym samym procesie (wielowątkowym).
28+
29+### TCustomDaemonApplication
30+
31+To jest potomek klasy TCustomApplication, który tworzy TCustomDaemons. Nie wymaga on żadnych zmian. Działa w systemie Windows do momentu odebrania wywołania Stop lub w systemie Linux do sygnału TERM.
32+
33+### TDaemonMapper
34+
35+Ten składnik obsługuje rejestrację usługi. Każda jego instancja wymaga jednego wpisu we właściwości **DaemonDefs**.
36+
37+## Demon - Krok po kroku
38+
39+- Gdy demon jest uruchamiany, analizowane są parametry wiersza poleceń. Wstępnie zdefiniowane są:
40+ - -i --install: zarejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
41+ - -u --uninstall: wyrejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
42+ - -r --run: uruchom demona. Windows zwykle robi to sam.
43+- Utwórz TDaemonMapper
44+- Utwórz jeden TCustomDaemon dla każdego wpisu *DaemonDefs*.
45+- instaluj, odinstaluj lub uruchom każdą instancję.
46+- jeśli działa: uruchom każdą instancję we własnym wątku, a następnie poczekaj na sygnał Stop/TERM.
47+
48+## Metody demona
49+
50+Start
51+Wywoływana, gdy demon powinien się uruchomić. Ta metoda musi natychmiast zwrócić wartość *True*.
52+
53+Stop
54+Wywoływana, gdy demon powinien się zatrzymać. Ta metoda musi natychmiast zwrócić wartość *True*.
55+
56+Shutdown
57+Wywoływana, gdy demon powinien zostać zabity. Ta metoda musi natychmiast zatrzymać demona i zwrócić wartość *True*. Nie jest to uruchamiane pod Linuksem. Linux po prostu zabija demona.
58+
59+Pause
60+Wywoływana, gdy demon powinien się zatrzymać. Ta metoda musi natychmiast zwrócić wartość *True*. W Linuksie nie jest to uruchamiane, ponieważ jądro zatrzymuje całego demona na sygnał STOP i kontynuuje go na sygnał CONT.
61+
62+Continue
63+Wywoływana, gdy demon powinien kontynuować pracę po przerwie. Ta metoda musi natychmiast zwrócić wartość *True*. W Linuksie nie jest to uruchamiane.
64+
65+Install
66+Wywoływana, gdy demon jest zarejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
67+
68+Uninstall
69+Wywoływana, gdy demon jest wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
70+
71+AfterUnInstall
72+Wywoływana po tym, jak demon został wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
73+
74+HandleCustomCode
75+Wywoływana, gdy do demona został wysłany specjalny sygnał. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
76+
77+### Pierwsze kroki
78+
79+Zanim będziesz mógł stworzyć aplikację Service lub Daemon, musisz najpierw upewnić się, że zainstalowałeś pakiet Lazarus Daemon "lazdemon".
80+
81+## Przykład
82+
83+W katalogu examples/cleandir/ znajduje się prosty przykład. Przeczytaj README.txt.
84+
85+## Instalacja usługi
86+
87+### Windows
88+
89+Możesz zainstalować usługę, wykonując proces z parametrem Install. Menedżer usług Windows zrobi resztę za Ciebie. Możesz skonfigurować usługę i jej opcje za pomocą menedżera usług.
90+
91+Zobacz także: [[ServiceManager/pl|Menedżer usług]]
92+
93+#### Kodowanie systemowe / UTF-8
94+
95+Projekt LazDeamon działa z domyślną stroną kodową, a nie UTF-8. Tryb *-dDisableUTF8RTL* należy aktywować za pomocą opcji z menu *Projekt* -\> *Opcje projektu...* -\> *Opcje kompilatora* -\> *Dodatki i wymuszenia* -\> *Użyj kodowania systemowego*.
96+
97+### Linux (tylko dla starszych wersji Debiana)
98+
99+Pobierz, skonfiguruj i "Zapisz jako" - przykładowy skrypt znajdujący się w Web Archive: [1](https://web.archive.org/web/20130209102726/http://aurawin.com/lazarus/debian-service.sh) ( Oryginalny link jest martwy od dłuższego czasu).
100+
101+- SVC_ALIAS to długi opis Twojej aplikacji
102+- SVC_FILENAME to rzeczywista nazwa pliku skompilowanej aplikacji usługi
103+- SVC_DIR to miejsce, w którym skopiowałeś aplikację usługi
104+- SVC_SERVICE_SCRIPT to ostateczna nazwa pliku service.sh stosowana w „Zapisz jako”, dostosowana do skryptu debian-service.sh.
105+
106+Umieść swój skrypt w folderze /etc/init.d/
107+
108+uruchom usługę, za pomocą komendy "sudo service Name_Of_Your_Script start"
109+
110+> **Note:** sudo ma kilka odmian, np.:
111+>
112+> \
113+> `sudo -s #`\
114+> \
115+> `sudo -H #`\
116+> \
117+> `sudo -i  #`\
118+> \
119+> `sudo su  #`\
120+> \
121+> `sudo sh  #`
122+
123+Aby automatycznie uruchomić usługę przy starcie, możesz spróbować update-rc.d, w przeciwnym razie będziesz potrzebować narzędzia innej firmy, które to zrobi.
124+
125+Opcja 1
126+
127+``` bash
128+sudo update-rc.d Name_Of_Your_Script defaults
129+```
130+
131+Opcja 2
132+
133+``` bash
134+sudo apt-get install chkconfig
135+sudo chkconfig --add Name_Of_Your_Script
136+sudo chkconfig --level 2345 Name_Of_Your_Script on
137+```
138+
139+### systemd (Fedora, Debian, SLES12)
140+
141+Obecne odmiany Linuksa odchodzą od uruchamiania różnych demonów na rzecz ujednoliconego modelu usług.
142+
143+Fedora i SuSE Enterprise Linux Server 12 używają systemd, a polecenia uruchamiania/zatrzymywania usług są takie same jak w Debianie, ale istnieją różnice w plikach konfiguracyjnych.
144+
145+- Z wiersza polecenia wykonaj: sudo gedit
146+- Kopiuj i wklej poniższy kod
147+
148+``` ini
149+[Unit]
150+Description=Długi opis Twojej aplikacji
151+After=network.target
152+
153+[Service]
154+Type=simple
155+ExecStart=pełna_ścieżka_i_nazwa_pliku -r
156+RemainAfterExit=yes
157+TimeoutSec=25
158+
159+[Install]
160+WantedBy=multi-user.target
161+```
162+
163+- Edytuj następujące wartości
164+ - Description - Długi opis aplikacji serwisowej
165+ - ExecStart — pełna ścieżka_i_nazwa_pliku to nazwa skompilowanej aplikacji usługi wraz z pełną ścieżką
166+
167+- Zapisz jako okno dialogowe
168+ - Przejdź do /lib/systemd/system/
169+ - Nazwij plik nazwa_twojej_usługi.service
170+
171+## Zobacz także
172+
173+- [[ServiceManager/pl|Menedżer usług]] Przykład dla modułu Free Pascal do zarządzania usługami Windows
174+- [[macOS daemons and agents]] - macOS natywnie używający launchd
175+- [[Office Automation]] - Interakcja z oprogramowaniem biurowym
176+- [Oswajanie demona: PDF autorstwa Michaëla Van Canneyt](https://www.freepascal.org/~michael/articles/daemons/daemons.pdf)
177+- [Przydatna dyskusja z małą działającą aplikacją demona](http://forum.lazarus.freepascal.org/index.php/topic,22983.msg152303.html#msg152303)
178+- [[Docker Containerization]] - Konteneryzacja jako sposób na łatwe tworzenie demonów / usług
179+
180+---
181+*From the Free Pascal wiki, page "Daemons and Services/pl", as it stood on 2022-01-09 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history