Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

OSX - Programme beenden mit AS? - kann man laufende prozesse

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Daisy
•-->
•-->


Anmeldedatum: 26.04.2002
Beiträge: 79

BeitragVerfasst am: 16.05.2002 - 07:58    Titel: OSX - Programme beenden mit AS? - kann man laufende prozesse Antworten mit Zitat

Liebes Forum,

da ich Programme wie Hotline, Carracho oder Limewire gerne mal auch noch ein bisschen in die Nacht hinein laufen lasse, habe ich mir einen kleinen Ausschalttimer geschrieben. Der Haken ist nur, dass dummerweise einige von diesen Programmen nachfragen, ob sie laufende Verbindungen abbrechen sollen und damit das Ausschalten vereiteln.

Da ich vor kurzem auf OS X umgestiegen bin und den Timer dafür umgeschrieben habe, habe ich mich gefragt, ob das Problem sich nicht unter OS X lösen läßt, da es ja mit Sofort beenden genau die Funktion hat, die ich benötige. Ist das scriptbar?
Geht das direkt über einen AS-Befehl, oder muss ich dazu das Terminal bemühen und die Applikation ' kill en' : (do script with command kill [PID])?
Letzteres funktioniert, wenn ich die PID-Nummern der Programms habe, die ich beenden möchte. Aber wie finde ich die raus? (Leider habe ich bei UNIX-Befehlen überhaupt keinen Plan - ich kenne nur top mit dem ich alle laufenden Prozesse anzeigen kann. Aber das hilft mir da ja wohl nicht, da ich per AS ja nicht oder nur mühsam auf die Ergebnisse zugreifen kann.)

Viiilen Dank für Eure Hilfe.

Gruß

Daisy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 16.05.2002 - 18:52    Titel: OSX - Programme beenden mit AS? Antworten mit Zitat

Hallo Daisy,

folgender Code stammt von Jon Pugh:

Code:

on forceQuit(appName)
set pid to word 1 of (do shell script ("ps -xo,pid,command | grep \"" & appName & "\" | head -n 1"))
do shell script ("kill -9 " & pid)
end forceQuit

forceQuit("Clock")


Keine Ahnung, was das alles bedeutet. errötend
Mir ist das Terminal noch sehr fremd.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 22.02.2003 - 17:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Daisy
•-->
•-->


Anmeldedatum: 26.04.2002
Beiträge: 79

BeitragVerfasst am: 16.05.2002 - 22:28    Titel: OSX - Programme beenden mit AS? Antworten mit Zitat

Hallo Snow,

Vielen Dank für die Lösung - damit funktioniert's Smile)
Guter Mann der Jon Pugh.

Das mit den Unix-Kommandos ist eigentlich gar nicht so schlimm - einfach im Terminal "man <i>Kommando</i>" eingeben und schon hast du die Erklärung zum Befehl und allen seinen Optionen. So langsam kehrt bei mir die Erinnerung zurück ...
Die erste Unix-Zeile im Script ist allerdings schon recht heftig - sie kombiniert drei Unix-Befehle um die PID zu ermitteln: ps, grep und head.
ps ... erzeugt eine Liste mit allen aktiven Prozessen, grep ... sucht darin den Namen der Applikation, die beendet werden soll und head ... spuckt vom Ergebnis die erste Zeile aus. Der Rest ist einfach - Applescript nimmt sich davon das erste Wort (das ist die benötigte PID) und kill... killt dann eben das Gewünschte  - da wäre ich nie drauf gekommen ...

Gruß,

Daisy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 16.05.2002 - 23:06    Titel: OSX - Programme beenden mit AS? Antworten mit Zitat

Danke Daisy,

bisher war mir nur klar, dass bei 'grep' das entsprechende Programm gesucht werden soll. Ich habe nochmal die Mails aus der Mailingliste durchsucht und noch eine kleine Nachbesserung gefunden.

ps -xwwo,pid,command

Da du mich sozusagen an die Hand genommen hast (tut auch mal gut seufz ), habe ich auch gleich ganz artig die entsprechende man-Page aufgerufen. Hm?
Bei der Option -w heißt es da:

Use 132 columns to display information, instead of the default which is your window size. If the -w option is specified more than once, ps will use as many columns as necessary without regard for your window size.

Ein entsprechender Test mit ps -x hat mir dann auch gezeigt, dass die Informationen wirklich am Fensterrand abgeschnitten werden.

Mit ps -xw war es dann gleich viel besser. Very Happy

Da aber bei der Ausführung per AppleScript gar kein Terminalfenster geöffnet wird, frage ich mich, ob es da wirklich eine Rolle spielt. Was meinst du?

Übrigens: Jon Pugh arbeitet gerade an "Jon's Commands X". Allerdings hat er erst den Befehl "the ticks" portiert.

Gruß
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 22.02.2003 - 17:40, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Daisy
•-->
•-->


Anmeldedatum: 26.04.2002
Beiträge: 79

BeitragVerfasst am: 17.05.2002 - 01:05    Titel: OSX - Programme beenden mit AS? Antworten mit Zitat

Hallo Snow,

vielen Dank nochmal für die Nachbesserung. Die Frage, wie groß der Defaultwert ist, wenn ps ohne -w sei Ergebnis in ein nichtvorhandenes Fenster schickt, dürfte schwer zu klären sein - bei meinen Tests ohne die -w Option kam es allerdings bisher zu keinen Ausfällen. Wenn ich das ganze dagegen im Shellfenster starte, sind häufig die Enden (und da stehen ja die relevanten Namen) abgeschnitten - die Vermutung liegt also nahe, dass es beim Aufruf aus AS da keine so enge Begrenzung gibt.
Aber da es ja auf keinen Fall schaden kann, werde ich -w auf jeden Fall noch einbauen.

Grüße & Gute Nacht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Daisy
•-->
•-->


Anmeldedatum: 26.04.2002
Beiträge: 79

BeitragVerfasst am: 21.05.2002 - 22:24    Titel: OSX - Programme beenden mit AS? Antworten mit Zitat

Bitte unbedingt beachten:
Noch ein wichtiger Nachtrag für alle, die auch mit dem Beenden von Programmen unter X experimentieren:
Man sollte auf keinen Fall in einem Rundumschlag alle laufenden Prozesse auf dem oben beschriebenen Weg beenden. (set x to every process .. kill ...) Da wären dann nämlich auch wichtige Systemprozesse (loginwindow ..) dabei. In einem anderen Board habe ich dazu einen Beitrag von jemand gelesen, der das ausprobiert hat - es scheint ihm nicht gut bekommen zu sein.

Falls übrigens jemand einen Weg weiß, wie man die Systemprozesse anders ausfiltern kann außer über den Abgleich der Namen - ich wäre für jeden Vorschlag dankbar... Very Happy

Gruß

Daisy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter