2016-10-31 4 views
0

Ich mache ein Python-Skript, das den Song-Pfad speichert, wenn der VLC Media Player auf einem Ubuntu-System läuft. Das Skript ist bereit, aber wenn ich dieses Skript beim Start ausführe, verwendet es kontinuierlich CPU-Freigabe in der Schleife. Ich möchte das Skript automatisch aufrufen, wenn der Benutzer den vlc media player startet. Wie kann ich es tun? Kann es mit jedem Shell-Scripting möglich sein?Wie wird ein Python-Skript automatisch aufgerufen, wenn der VLC-Medienprozess jedes Mal auf Ubuntu startet?

Antwort

1
import os,time 

processname = 'enter the VLC process name' 
tmp = os.popen("ps -Af").read() 
proccount = tmp.count(processname) 

while proccount > 0: 
    print(proccount, ' processes running of ', processname, 'type') 
    runsongpathfunction() 
    time.sleep(1) 

Was dies tut, ist es, den Prozess aus dem Prozessnamen findet dann, wenn VLC das Skript geschlossen ist geschlossen und es nicht mehr zu tun, was es tat, während VLC ausgeführt wurde, weil die while-Schleife nicht mehr wahr ist. Ich habe ein time.sleep (1) hinzugefügt, um Ressourcen zu sparen, die nicht wirklich benötigt werden, aber es spart CPU.

+0

Also dieses Skript wird automatisch aufgerufen, wenn ich VLC auf meinem System ausführen, oder ich muss dies als Startanwendung hinzufügen? – fdfv

+0

Sie müssen die Startanwendung hinzufügen und die Variablen des VLC-Prozessnamens eingeben. Ich würde empfehlen, einen Chronjob zu verwenden. – thesonyman101

+0

Ich habe zwei Probleme damit. Erstens, wenn ich es als Startup-Anwendung hinzufüge und wenn vlc nicht läuft, wird die While-Schleife unterbrochen und das Skript wird gestoppt. Zweitens, selbst wenn vlc nicht läuft, gibt es mir 4 Prozesse, die vom 'vlc'-Typ laufen. WARUM? – fdfv

Verwandte Themen