Puncte:1

Obținerea PID al dependenței în systemd?

drapel us
eof

Aș dori să scriu un fișier de unitate systemd care trebuie să treacă la comanda exec PID-ul uneia dintre dependențele sale. În fișierul unitar aș dori să am:

ExecStart=bar -p <PID-ul foo.service>
Necesită=foo.service
După=foo.service

Există o modalitate de a obține PID-ul unei dependențe necesare într-un mod ușor? Nu am putut găsi nimic în manual și nici un exemplu în niciunul dintre fișierele unității de pe un desktop Ubuntu.

Cazul de utilizare este de a crea un fișier unitar simplu care poate fi folosit pentru a atașa demonul JProfiler la un serviciu bazat pe Java pentru a face depanarea performanței de la distanță. Comanda de atașare a profilelor necesită PID-ul JVM-ului.

Puncte:0
drapel cl
A.B

Din man systemctl:

-p, --proprietate=

Când se afișează proprietățile unității/locului/managerului cu spectacol comanda, limita afișare la proprietățile specificate în argument. Argumentul ar trebui să fie o listă de nume de proprietăți, separate prin virgulă, precum "MainPID". [...]

Asa de systemctl arată -p MainPID foo va afisa MainPID=<pid> (mai degrabă decât doar pid-ul).

Deci, dacă serviciul foo poate fi identificat prin PID-ul său principal (adică: procesul țintă nu este de fapt un sub-proces al pid-ului principal), acesta ar putea fi folosit:

/bin/bash -c 'declare -i $(systemctl show -p MainPID foo); [ "$MainPID" -ne 0 ] && exec bar -p $MainPID || ieșire 1'

Dacă nu în propriul său script, cu convențiile de citare ale systemd stricand puțin linia, aceasta devine:

ExecStart=/bin/bash -c 'declare -i $$(systemctl show -p MainPID foo); [ \"$$MainPID\" -ne 0 ] && exec bar -p $$MainPID || ieșire 1'

Acest script poate fi îmbunătățit, dar înțelegeți ideea.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.