Sign in Join
Wiki copytemporary

Daemons and Services/pl: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Demony i usługi
22
3-## Contents
4-
5- * 1 Czym są demony, usługi i agenci?
6- * 2 Instalacja LazDaemon
7- * 3 Klasy
8- * 3.1 TCustomDaemon
9- * 3.2 TCustomDaemonApplication
10- * 3.3 TDaemonMapper
11- * 4 Demon - Krok po kroku
12- * 5 Metody demona
13- * 5.1 Pierwsze kroki
14- * 6 Przykład
15- * 7 Instalacja usługi
16- * 7.1 Windows
17- * 7.1.1 Kodowanie systemowe / UTF-8
18- * 7.2 Linux (tylko dla starszych wersji Debiana)
19- * 7.3 systemd (Fedora, Debian, SLES12)
20- * 8 Zobacz także
21-
223## Czym są demony, usługi i agenci?
234
24-_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.
5+*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.
256
26-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).
7+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).
278
289## Instalacja LazDaemon
2910
30-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:
11+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:
3112
32-W menu **Plik - Nowy...:** , w oknie dialogowym pojawią się 3 nowe pozycje pod nagłówkiem: **"Daemon (service) applications":**
13+W menu **Plik - Nowy...:**, w oknie dialogowym pojawią się 3 nowe pozycje pod nagłówkiem: **"Daemon (service) applications":**
3314
34- * Daemon (service) applications
35- * Daemon Module
36- * Daemon mapper
15+- Daemon (service) applications
16+- Daemon Module
17+- Daemon mapper
3718
3819## Klasy
3920
4021### TCustomDaemon
4122
42-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).
23+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).
4324
4425### TCustomDaemonApplication
4526
46-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.
27+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.
4728
4829### TDaemonMapper
4930
50-Ten składnik obsługuje rejestrację usługi. Każda jego instancja wymaga jednego wpisu we właściwości **DaemonDefs**.
31+Ten składnik obsługuje rejestrację usługi. Każda jego instancja wymaga jednego wpisu we właściwości **DaemonDefs**.
5132
5233## Demon - Krok po kroku
5334
54- * Gdy demon jest uruchamiany, analizowane są parametry wiersza poleceń. Wstępnie zdefiniowane są:
55- * -i --install: zarejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
56- * -u --uninstall: wyrejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
57- * -r --run: uruchom demona. Windows zwykle robi to sam.
58- * Utwórz TDaemonMapper
59- * Utwórz jeden TCustomDaemon dla każdego wpisu _DaemonDefs_.
60- * instaluj, odinstaluj lub uruchom każdą instancję.
61- * jeśli działa: uruchom każdą instancję we własnym wątku, a następnie poczekaj na sygnał Stop/TERM.
35+- Gdy demon jest uruchamiany, analizowane są parametry wiersza poleceń. Wstępnie zdefiniowane są:
36+ - -i --install: zarejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
37+ - -u --uninstall: wyrejestruj demona. Nie ma to żadnego wpływu pod Uniksem.
38+ - -r --run: uruchom demona. Windows zwykle robi to sam.
39+- Utwórz TDaemonMapper
40+- Utwórz jeden TCustomDaemon dla każdego wpisu *DaemonDefs*.
41+- instaluj, odinstaluj lub uruchom każdą instancję.
42+- jeśli działa: uruchom każdą instancję we własnym wątku, a następnie poczekaj na sygnał Stop/TERM.
6243
6344## Metody demona
6445
65-Start
66- Wywoływana, gdy demon powinien się uruchomić. Ta metoda musi natychmiast zwrócić wartość _True_.
67-Stop
68- Wywoływana, gdy demon powinien się zatrzymać. Ta metoda musi natychmiast zwrócić wartość _True_.
69-Shutdown
70- 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.
71-Pause
72- 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.
73-Continue
74- Wywoływana, gdy demon powinien kontynuować pracę po przerwie. Ta metoda musi natychmiast zwrócić wartość _True_. W Linuksie nie jest to uruchamiane.
75-Install
76- Wywoływana, gdy demon jest zarejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość _True_ w przypadku powodzenia.
77-Uninstall
78- Wywoływana, gdy demon jest wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość _True_ w przypadku powodzenia.
79-AfterUnInstall
80- Wywoływana po tym, jak demon został wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość _True_ w przypadku powodzenia.
81-HandleCustomCode
82- Wywoływana, gdy do demona został wysłany specjalny sygnał. Ta metoda powinna zwrócić wartość _True_ w przypadku powodzenia.
46+Start
47+Wywoływana, gdy demon powinien się uruchomić. Ta metoda musi natychmiast zwrócić wartość *True*.
8348
49+Stop
50+Wywoływana, gdy demon powinien się zatrzymać. Ta metoda musi natychmiast zwrócić wartość *True*.
51+
52+Shutdown
53+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.
54+
55+Pause
56+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.
57+
58+Continue
59+Wywoływana, gdy demon powinien kontynuować pracę po przerwie. Ta metoda musi natychmiast zwrócić wartość *True*. W Linuksie nie jest to uruchamiane.
60+
61+Install
62+Wywoływana, gdy demon jest zarejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
63+
64+Uninstall
65+Wywoływana, gdy demon jest wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
66+
67+AfterUnInstall
68+Wywoływana po tym, jak demon został wyrejestrowany jako usługa systemu Windows. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
69+
70+HandleCustomCode
71+Wywoływana, gdy do demona został wysłany specjalny sygnał. Ta metoda powinna zwrócić wartość *True* w przypadku powodzenia.
72+
8473### Pierwsze kroki
8574
86-Zanim będziesz mógł stworzyć aplikację Service lub Daemon, musisz najpierw upewnić się, że zainstalowałeś pakiet Lazarus Daemon "lazdemon".
75+Zanim będziesz mógł stworzyć aplikację Service lub Daemon, musisz najpierw upewnić się, że zainstalowałeś pakiet Lazarus Daemon "lazdemon".
8776
8877## Przykład
8978
90-W katalogu examples/cleandir/ znajduje się prosty przykład. Przeczytaj README.txt.
79+W katalogu examples/cleandir/ znajduje się prosty przykład. Przeczytaj README.txt.
9180
9281## Instalacja usługi
9382
9483### Windows
9584
96-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.
85+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.
9786
9887Zobacz także: [[ServiceManager/pl|Menedżer usług]]
9988
10089#### Kodowanie systemowe / UTF-8
10190
102-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_.
91+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*.
10392
10493### Linux (tylko dla starszych wersji Debiana)
10594
106-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).
95+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).
10796
108- * SVC_ALIAS to długi opis Twojej aplikacji
109- * SVC_FILENAME to rzeczywista nazwa pliku skompilowanej aplikacji usługi
110- * SVC_DIR to miejsce, w którym skopiowałeś aplikację usługi
111- * SVC_SERVICE_SCRIPT to ostateczna nazwa pliku service.sh stosowana w „Zapisz jako”, dostosowana do skryptu debian-service.sh.
97+- SVC_ALIAS to długi opis Twojej aplikacji
98+- SVC_FILENAME to rzeczywista nazwa pliku skompilowanej aplikacji usługi
99+- SVC_DIR to miejsce, w którym skopiowałeś aplikację usługi
100+- SVC_SERVICE_SCRIPT to ostateczna nazwa pliku service.sh stosowana w „Zapisz jako”, dostosowana do skryptu debian-service.sh.
112101
113-Umieść swój skrypt w folderze /etc/init.d/
102+Umieść swój skrypt w folderze /etc/init.d/
114103
115-uruchom usługę, za pomocą komendy "sudo service Name_Of_Your_Script start"
104+uruchom usługę, za pomocą komendy "sudo service Name_Of_Your_Script start"
116105
117-[![Note-icon.png](/wiki-images/b/be/Note-icon.png)](</File:Note-icon.png>)
106+> **Note:** sudo ma kilka odmian, np.:
107+>
108+> \
109+> `sudo -s #`\
110+> \
111+> `sudo -H #`\
112+> \
113+> `sudo -i  #`\
114+> \
115+> `sudo su  #`\
116+> \
117+> `sudo sh  #`
118118
119-**Uwaga:** sudo ma kilka odmian, np.:
120-sudo -s #
121-sudo -H #
122-sudo -i #
123-sudo su #
124-sudo sh #
119+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.
125120
126-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.
121+Opcja 1
127122
128-Opcja 1
129-```
123+``` bash
130124sudo update-rc.d Name_Of_Your_Script defaults
131125```
132126
133-Opcja 2
134-```
127+Opcja 2
128+
129+``` bash
135130sudo apt-get install chkconfig
136- sudo chkconfig --add Name_Of_Your_Script
137- sudo chkconfig --level 2345 Name_Of_Your_Script on
131+sudo chkconfig --add Name_Of_Your_Script
132+sudo chkconfig --level 2345 Name_Of_Your_Script on
138133```
139134
140135### systemd (Fedora, Debian, SLES12)
141136
142-Obecne odmiany Linuksa odchodzą od uruchamiania różnych demonów na rzecz ujednoliconego modelu usług.
137+Obecne odmiany Linuksa odchodzą od uruchamiania różnych demonów na rzecz ujednoliconego modelu usług.
143138
144-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.
139+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.
145140
146- * Z wiersza polecenia wykonaj: sudo gedit
147- * Kopiuj i wklej poniższy kod
141+- Z wiersza polecenia wykonaj: sudo gedit
142+- Kopiuj i wklej poniższy kod
148143
149-```
144+``` ini
150145[Unit]
151- Description=Długi opis Twojej aplikacji
152- After=network.target
153-
154- [Service]
155- Type=simple
156- ExecStart=pełna_ścieżka_i_nazwa_pliku -r
157- RemainAfterExit=yes
158- TimeoutSec=25
159-
160- [Install]
161- WantedBy=multi-user.target
146+Description=Długi opis Twojej aplikacji
147+After=network.target
148+
149+[Service]
150+Type=simple
151+ExecStart=pełna_ścieżka_i_nazwa_pliku -r
152+RemainAfterExit=yes
153+TimeoutSec=25
154+
155+[Install]
156+WantedBy=multi-user.target
162157```
163158
164- * Edytuj następujące wartości
165- * Description - Długi opis aplikacji serwisowej
166- * ExecStart — pełna ścieżka_i_nazwa_pliku to nazwa skompilowanej aplikacji usługi wraz z pełną ścieżką
159+- Edytuj następujące wartości
160+ - Description - Długi opis aplikacji serwisowej
161+ - ExecStart — pełna ścieżka_i_nazwa_pliku to nazwa skompilowanej aplikacji usługi wraz z pełną ścieżką
167162
168- * Zapisz jako okno dialogowe
169- * Przejdź do /lib/systemd/system/
170- * Nazwij plik nazwa_twojej_usługi.service
163+- Zapisz jako okno dialogowe
164+ - Przejdź do /lib/systemd/system/
165+ - Nazwij plik nazwa_twojej_usługi.service
171166
172167## Zobacz także
173168
174- * [[ServiceManager/pl|Menedżer usług]] Przykład dla modułu Free Pascal do zarządzania usługami Windows
175- * [[macOS daemons and agents]] \- macOS natywnie używający launchd
176- * [[Office Automation]] \- Interakcja z oprogramowaniem biurowym
177- * [Oswajanie demona: PDF autorstwa Michaëla Van Canneyt](<https://www.freepascal.org/~michael/articles/daemons/daemons.pdf>)
178- * [Przydatna dyskusja z małą działającą aplikacją demona](<http://forum.lazarus.freepascal.org/index.php/topic,22983.msg152303.html#msg152303>)
179- * [[Docker Containerization]] \- Konteneryzacja jako sposób na łatwe tworzenie demonów / usług
169+- [[ServiceManager/pl|Menedżer usług]] Przykład dla modułu Free Pascal do zarządzania usługami Windows
170+- [[macOS daemons and agents]] - macOS natywnie używający launchd
171+- [[Office Automation]] - Interakcja z oprogramowaniem biurowym
172+- [Oswajanie demona: PDF autorstwa Michaëla Van Canneyt](https://www.freepascal.org/~michael/articles/daemons/daemons.pdf)
173+- [Przydatna dyskusja z małą działającą aplikacją demona](http://forum.lazarus.freepascal.org/index.php/topic,22983.msg152303.html#msg152303)
174+- [[Docker Containerization]] - Konteneryzacja jako sposób na łatwe tworzenie demonów / usług
180175
181176---
182-*From the Free Pascal wiki, page "Daemons and Services/pl", as the Internet Archive kept it on 2022-10-07. 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).*
177+*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