Sign in Join
Wiki copytemporary

Daemons and Services/pl: what changed

Revision 2 to 3. 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+
322## Czym są demony, usługi i agenci?
423
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.
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.
625
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).
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).
827
928## Instalacja LazDaemon
1029
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:
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:
1231
13-W menu **Plik - Nowy...:**, w oknie dialogowym pojawią się 3 nowe pozycje pod nagłówkiem: **"Daemon (service) applications":**
32+W menu **Plik - Nowy...:** , w oknie dialogowym pojawią się 3 nowe pozycje pod nagłówkiem: **"Daemon (service) applications":**
1433
15-- Daemon (service) applications
16-- Daemon Module
17-- Daemon mapper
34+ * Daemon (service) applications
35+ * Daemon Module
36+ * Daemon mapper
1837
1938## Klasy
2039
2140### TCustomDaemon
2241
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).
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).
2443
2544### TCustomDaemonApplication
2645
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.
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.
2847
2948### TDaemonMapper
3049
31-Ten składnik obsługuje rejestrację usługi. Każda jego instancja wymaga jednego wpisu we właściwości **DaemonDefs**.
50+Ten składnik obsługuje rejestrację usługi. Każda jego instancja wymaga jednego wpisu we właściwości **DaemonDefs**.
3251
3352## Demon - Krok po kroku
3453
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.
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.
4362
4463## Metody demona
4564
46-Start
47-Wywoływana, gdy demon powinien się uruchomić. Ta metoda musi natychmiast zwrócić wartość *True*.
48-
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.
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.
7283
7384### Pierwsze kroki
7485
75-Zanim będziesz mógł stworzyć aplikację Service lub Daemon, musisz najpierw upewnić się, że zainstalowałeś pakiet Lazarus Daemon "lazdemon".
86+Zanim będziesz mógł stworzyć aplikację Service lub Daemon, musisz najpierw upewnić się, że zainstalowałeś pakiet Lazarus Daemon "lazdemon".
7687
7788## Przykład
7889
79-W katalogu examples/cleandir/ znajduje się prosty przykład. Przeczytaj README.txt.
90+W katalogu examples/cleandir/ znajduje się prosty przykład. Przeczytaj README.txt.
8091
8192## Instalacja usługi
8293
8394### Windows
8495
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.
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.
8697
8798Zobacz także: [[ServiceManager/pl|Menedżer usług]]
8899
89100#### Kodowanie systemowe / UTF-8
90101
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*.
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_.
92103
93104### Linux (tylko dla starszych wersji Debiana)
94105
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).
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).
96107
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.
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.
101112
102-Umieść swój skrypt w folderze /etc/init.d/
113+Umieść swój skrypt w folderze /etc/init.d/
103114
104-uruchom usługę, za pomocą komendy "sudo service Name_Of_Your_Script start"
115+uruchom usługę, za pomocą komendy "sudo service Name_Of_Your_Script start"
105116
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  #`
117+[![Note-icon.png](/wiki-images/b/be/Note-icon.png)](</File:Note-icon.png>)
118118
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.
119+**Uwaga:** sudo ma kilka odmian, np.:
120+sudo -s #
121+sudo -H #
122+sudo -i #
123+sudo su #
124+sudo sh #
120125
121-Opcja 1
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.
122127
123-``` bash
128+Opcja 1
129+```
124130sudo update-rc.d Name_Of_Your_Script defaults
125131```
126132
127-Opcja 2
128-
129-``` bash
133+Opcja 2
134+```
130135sudo apt-get install chkconfig
131-sudo chkconfig --add Name_Of_Your_Script
132-sudo chkconfig --level 2345 Name_Of_Your_Script on
136+ sudo chkconfig --add Name_Of_Your_Script
137+ sudo chkconfig --level 2345 Name_Of_Your_Script on
133138```
134139
135140### systemd (Fedora, Debian, SLES12)
136141
137-Obecne odmiany Linuksa odchodzą od uruchamiania różnych demonów na rzecz ujednoliconego modelu usług.
142+Obecne odmiany Linuksa odchodzą od uruchamiania różnych demonów na rzecz ujednoliconego modelu usług.
138143
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.
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.
140145
141-- Z wiersza polecenia wykonaj: sudo gedit
142-- Kopiuj i wklej poniższy kod
146+ * Z wiersza polecenia wykonaj: sudo gedit
147+ * Kopiuj i wklej poniższy kod
143148
144-``` ini
149+```
145150[Unit]
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
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
157162```
158163
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ą
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ą
162167
163-- Zapisz jako okno dialogowe
164- - Przejdź do /lib/systemd/system/
165- - Nazwij plik nazwa_twojej_usługi.service
168+ * Zapisz jako okno dialogowe
169+ * Przejdź do /lib/systemd/system/
170+ * Nazwij plik nazwa_twojej_usługi.service
166171
167172## Zobacz także
168173
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
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
175180
176181---
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).*
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).*

Back to history