Hallo Leute,
wie kann man mit einem Python Script einen Service status abfragen ?
Beispiel: Ich möchte wissen ob hostapd aktiv oder inaktiv ist.
Vielen Dank
Mit Python einen service status abfragen
Nach einer API suchen, die dir den Status zurück gibt (ich glaube systemd hat ein dbus-Interface), falls es keine API gibt kann man auch mit `subprocess` ein externes Programm (z.B. systemctl) starten und das Ergebnis auswerten.
the more they change the more they stay the same
@HightronicDesign: Wie Dav1d schrieb hat `systemd` eine DBus-API. Es gibt mit `python-systemd` eine API die darauf aufbaut.
Anstelle des `mediacenter.service` mit dem ich das auf meinem OSMC-Raspi getestet habe, müsstest Du da den Service-Namen eintragen den Du testen möchtest.
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
from systemd.manager import Manager
def main():
manager = Manager()
unit = manager.get_unit('mediacenter.service')
is_active = unit.properties.ActiveState == 'active'
print(is_active)
if __name__ == '__main__':
main()
- HightronicDesign
- User
- Beiträge: 9
- Registriert: Freitag 20. Februar 2015, 00:41
Hmm verstehe.
Ich habe es gestern noch spontan mit der abfrage von systemctl gemacht.
Allerdings frage ich momentan den status in einer while1 loop ab weil ich ein event starten stoppen möchte je nach status, was ich noch nicht auf performance geprüft habe.
Ich habe es gestern noch spontan mit der abfrage von systemctl gemacht.
Allerdings frage ich momentan den status in einer while1 loop ab weil ich ein event starten stoppen möchte je nach status, was ich noch nicht auf performance geprüft habe.
Das klingt alles andere als elegant. Bietet Systemd nichts an um über einen gestarteten Service informiert zu werden?HightronicDesign hat geschrieben:Allerdings frage ich momentan den status in einer while1 loop ab weil ich ein event starten stoppen möchte je nach status, was ich noch nicht auf performance geprüft habe.
- HightronicDesign
- User
- Beiträge: 9
- Registriert: Freitag 20. Februar 2015, 00:41
Über den technischen Hintergrund von systemd hab ich noch nicht viel gesucht, daher kann ich selbst fürs erste nicht sagen ob sich in dieser Richtung irgendwas anbietet.