Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pisanje systemd daemona :)

[es] :: Linux :: Pisanje systemd daemona :)

Strane: 1 2

[ Pregleda: 4092 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)07.03.2019. u 10:53 - pre 62 meseci
Ok, napredak, bar sto se ice .net dela. Postoji native podrska za daemons kroz HostedService framework. Ima kompletan lifecycle support i podrzava i cleanup za SIGTERM i ostale trappable SIGs

root@BlackWolf:/home/mmix/projects/Pegasus# /home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/PegasusServer
info: PegasusServer.DaemonHostedService[0]
StartAsync method called.
info: PegasusServer.DaemonHostedService[0]
OnStarted method called.
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: /home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/

^Cinfo: PegasusServer.DaemonHostedService[0]
OnStopping method called.
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
info: PegasusServer.DaemonHostedService[0]
StopAsync method called.
info: PegasusServer.DaemonHostedService[0]
OnStopped method called.


Sad cu da vidim kako to izgleda kad se zapakuje u systemd
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)07.03.2019. u 11:50 - pre 62 meseci
Ok, ovo vec obecava. Servis se dizi i gasi na komandu :) Jedino mi host vraca exit code 143 iz nekog razloga, videcu o cemu se radi:

Code:
root@BlackWolf:/etc/systemd/system# systemctl start pegasus.service 
root@BlackWolf:/etc/systemd/system# systemctl status pegasus.service 
● pegasus.service - Pegasus server
   Loaded: loaded (/etc/systemd/system/pegasus.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-03-07 12:45:12 CET; 3s ago
 Main PID: 31309 (PegasusServer)
    Tasks: 9 (limit: 4915)
   Memory: 7.3M
   CGroup: /system.slice/pegasus.service
           └─31309 /home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/linux-x64/publish/PegasusServer

Mär 07 12:45:12 BlackWolf PegasusServer[31309]: info: PegasusServer.DaemonHostedService[0]
Mär 07 12:45:12 BlackWolf PegasusServer[31309]:       StartAsync method called.
Mär 07 12:45:12 BlackWolf PegasusServer[31309]: info: PegasusServer.DaemonHostedService[0]
Mär 07 12:45:12 BlackWolf PegasusServer[31309]:       OnStarted method called.
Mär 07 12:45:12 BlackWolf PegasusServer[31309]: info: Microsoft.Hosting.Lifetime[0]
Mär 07 12:45:12 BlackWolf PegasusServer[31309]:       Application started. Press Ctrl+C to shut down.
Mär 07 12:45:12 BlackWolf PegasusServer[31309]: info: Microsoft.Hosting.Lifetime[0]
Mär 07 12:45:12 BlackWolf PegasusServer[31309]:       Hosting environment: Production
Mär 07 12:45:12 BlackWolf PegasusServer[31309]: info: Microsoft.Hosting.Lifetime[0]
Mär 07 12:45:12 BlackWolf PegasusServer[31309]:       Content root path: /home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/linux-x64/publish/
root@BlackWolf:/etc/systemd/system# systemctl stop pegasus.service 
root@BlackWolf:/etc/systemd/system# systemctl status pegasus.service 
● pegasus.service - Pegasus server
   Loaded: loaded (/etc/systemd/system/pegasus.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2019-03-07 12:45:45 CET; 2s ago
  Process: 31309 ExecStart=/home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/linux-x64/publish/PegasusServer (code=exited, status=143)
 Main PID: 31309 (code=exited, status=143)

Mär 07 12:45:45 BlackWolf PegasusServer[31309]:       OnStopping method called.
Mär 07 12:45:45 BlackWolf PegasusServer[31309]: info: Microsoft.Hosting.Lifetime[0]
Mär 07 12:45:45 BlackWolf PegasusServer[31309]:       Application is shutting down...
Mär 07 12:45:45 BlackWolf PegasusServer[31309]: info: PegasusServer.DaemonHostedService[0]
Mär 07 12:45:45 BlackWolf PegasusServer[31309]:       StopAsync method called.
Mär 07 12:45:45 BlackWolf PegasusServer[31309]: info: PegasusServer.DaemonHostedService[0]
Mär 07 12:45:45 BlackWolf PegasusServer[31309]:       OnStopped method called.
Mär 07 12:45:45 BlackWolf systemd[1]: pegasus.service: Main process exited, code=exited, status=143/n/a
Mär 07 12:45:45 BlackWolf systemd[1]: pegasus.service: Failed with result 'exit-code'.
Mär 07 12:45:45 BlackWolf systemd[1]: Stopped Pegasus server.
root@BlackWolf:/etc/systemd/system# 

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)07.03.2019. u 12:03 - pre 62 meseci
Hmm, kad startujem iz konzole i posaljem mu SIGTERM iz htopa, dobijem isti exit code bez greske u samom daemonu:

Code:

mmix@BlackWolf:~/projects/Pegasus$ PegasusServer/bin/Debug/netcoreapp3.0/linux-x64/publish/PegasusServer 
info: PegasusServer.DaemonHostedService[0]
      StartAsync method called.
info: PegasusServer.DaemonHostedService[0]
      OnStarted method called.
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /home/mmix/projects/Pegasus/PegasusServer/bin/Debug/netcoreapp3.0/linux-x64/publish/
info: PegasusServer.DaemonHostedService[0]
      OnStopping method called.
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
info: PegasusServer.DaemonHostedService[0]
      StopAsync method called.
info: PegasusServer.DaemonHostedService[0]
      OnStopped method called.
mmix@BlackWolf:~/projects/Pegasus$ echo $?
143


Koliko sam shvatio po netu, to je ocekivano ponasanje ako te neko ubije SIGTERM-om: 143 usually means the application caught a SIGTERM signal (128+15), meaning the process was killed. This could be because another process killed it, or perhaps because the operating system killed it for using too much memory or some other resource, etc.. Ocigledno je da je systemd poslao SIGTERM, ali zasto onda ocekuje da dobije exit code 0 da bi bio regularno stopped?

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Pisanje systemd daemona :)07.03.2019. u 12:47 - pre 62 meseci
SIGTERM može biti hendlovan, za razliku od SIGKILL.
Možda systemd očekuje da tvoj servis uhvati signal 15 i da se regularno završi, sa exit kodom 0.
Neka se ponašanja podrazumevaju, ali nisu obavezna.
Recimo, da SIGHUP proizvede da se ponovo pročitaju setup fajlovi. Možeš da ignorišeš SIGHUP, ali to se smatra lošom praksom.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)07.03.2019. u 12:59 - pre 62 meseci
Da, nasao sam i resenje koje ne podrazumeva da moram da kopam po host serveru

[Service]
SuccessExitStatus=143


Code:
root@BlackWolf:/etc/systemd/system# systemctl stop pegasus.service 
root@BlackWolf:/etc/systemd/system# systemctl status pegasus.service 
● pegasus.service - Pegasus server
   Loaded: loaded (/etc/systemd/system/pegasus.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Mär 07 13:58:10 BlackWolf systemd[1]: Stopping Pegasus server...
Mär 07 13:58:10 BlackWolf PegasusServer[2330]: info: PegasusServer.DaemonHostedService[0]
Mär 07 13:58:10 BlackWolf PegasusServer[2330]:       OnStopping method called.
Mär 07 13:58:10 BlackWolf PegasusServer[2330]: info: Microsoft.Hosting.Lifetime[0]
Mär 07 13:58:10 BlackWolf PegasusServer[2330]:       Application is shutting down...
Mär 07 13:58:10 BlackWolf PegasusServer[2330]: info: PegasusServer.DaemonHostedService[0]
Mär 07 13:58:10 BlackWolf PegasusServer[2330]:       StopAsync method called.
Mär 07 13:58:10 BlackWolf PegasusServer[2330]: info: PegasusServer.DaemonHostedService[0]
Mär 07 13:58:10 BlackWolf PegasusServer[2330]:       OnStopped method called.
Mär 07 13:58:10 BlackWolf systemd[1]: Stopped Pegasus server.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)09.03.2019. u 12:00 - pre 62 meseci
Ok, uradio sam ga Sad samo da napravim .deb


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
Prikačeni fajlovi
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)09.03.2019. u 13:38 - pre 62 meseci
Ok, ko zeli da proba:

Pegasus .deb file


Daemon je self-contained, nema dependencies.

telnet localhost 12345 nakon instalacije. .deb ima remove skriptu ako hocete posle da uklonite.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Srđan Pavlović
Specijalna Edukacija i Rehabilitacija MNRO
Vojvodina, Bačka Palanka

Član broj: 139340
Poruke: 5571
46.17.121.*

Sajt: www.oligofrenolog.com


+382 Profil

icon Re: Pisanje systemd daemona :)09.03.2019. u 14:04 - pre 62 meseci
Nece da kvituje :D


Prikačeni fajlovi
 
Odgovor na temu

Srđan Pavlović
Specijalna Edukacija i Rehabilitacija MNRO
Vojvodina, Bačka Palanka

Član broj: 139340
Poruke: 5571
46.17.121.*

Sajt: www.oligofrenolog.com


+382 Profil

icon Re: Pisanje systemd daemona :)09.03.2019. u 14:09 - pre 62 meseci
A oce, oce, zaboravio sam dvotacku ispred :D
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)09.03.2019. u 14:23 - pre 62 meseci
Jedini problem koji nisam resio je sto poruke overwrituju ono sto kucas u terminalu (kad ima vise korisnika). Ni Linux ni Win telnet ne podrzavaju pun ANSI, samo neke stvari koje ne rade manipulaciju bafera. Samim tim boje rade, ali komande kao sto su Esc[L za insert blank linije ne rade.

Ali ok, za proof of concept je dovoljno. Ja sam svejedno ubacio Esc[L u izlaz, tako da ako pronadjete neki pun ANSI telnet klijent, trebalo bi da radi.



Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pisanje systemd daemona :)10.03.2019. u 16:33 - pre 62 meseci
Ako nekog interesuje sors:

https://gitlab.com/the-black-wolf/pegasus-server



[Ovu poruku je menjao mmix dana 14.03.2019. u 12:57 GMT+1]
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: Linux :: Pisanje systemd daemona :)

Strane: 1 2

[ Pregleda: 4092 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.