1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Applescript, Shell, Quicksilver

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von commander, 24.07.07.

  1. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Servus,

    habe folgendes Problem:

    Der tolle CheckPoint VPN Client lässt den Airportprozess auf meinem MBP verrückt spielen, nach jedem login rennt der los und macht eine CPU dicht. Das ist ein bekannter Bug, kein Patch verfügbar.

    Nun hab ich mir ein mini-script geschrieben, das den airport-prozess ausknippst. Das musste ich vorher immer händisch über die Aktivitätsanzeige machen.

    So schaut das script aus:

    Code:
    kill -9 `ps ax | grep airport | grep -v grep | cut -f1 -d' '`
    
    Funktioniert im Terminal wunderbar.

    Ich will das aber über Quicksilver mit Abracadabra (Mausgesten) auslösen. Trage also das script ein und als Action run(shell).

    Funzt nicht.

    In Applescript verpackt (mit und ohne Administrator Privilegien) klappts auch nicht.

    Code:
    try
    	do shell script "airportkiller"
    end try
    
    Ich habs schon mit allen möglichen Pfaden probiert, im moment liegt das script aus lauter Verzweiflung bereits in /usr/bin/ und ist rwx für alle und jeden.

    Trotzdem kann ich das script weder über QS noch über Applescript ausführen - warum?

    Gruß,

    .commander
     
  2. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Steht am Anfang des Shellskripts auch ein
    Code:
    #!/bin/sh
    oder Ähnliches? Eventuell braucht man das.

    P.S.: Du kannst auch einfach direkt in AS
    Code:
    do shell script "kill -9 `ps ax | grep airport | grep -v grep | cut -f1 -d' '`"
    tippen, geht das?
     
    #2 quarx, 24.07.07
    Zuletzt bearbeitet: 24.07.07
  3. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Danke für den Hinweis, hat nur leider nichts genützt :(

    es funktionert auch der 'do shell script' Aufruf aus Applescript heraus nicht.... !!! ???

    Hmmm
     
  4. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Hab grad keinen Mac vor mir, aber unter Linux zumindest fängt die Ausgabe des ps-Befehls ggf. mit Leerzeichen an, je nach Höhe der Prozessnummer (d.h. man müsste erst die führenden Leerzeichen wegschnibbeln).

    Edit: schalte hierzu einen sed dazwischen
    Code:
    do shell script "kill -9 `ps ax | sed 's/^[ ]*//' | grep airport | grep -v grep | cut -f1 -d' '`"
    
     
    #4 quarx, 24.07.07
    Zuletzt bearbeitet: 24.07.07
  5. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Nachdem das Script selbst ja zuverlässig funktioniert, und somit kill Leerzeichentolerant ist, glaube ich nicht, dass es daran liegt ....
     
  6. csharp

    csharp Gast

    tell application "System Events"
    if exists process "airport" then
    try
    quit application "airport"
    end try
    end if
    end tell

    ungestestet!
     
    #6 csharp, 24.07.07
    Zuletzt von einem Moderator bearbeitet: 24.07.07
  7. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    @commander: kill ist leerzeichentolerant, aber nicht cut... ;)
     
  8. youngalcapone

    youngalcapone Jonagold

    Dabei seit:
    19.10.05
    Beiträge:
    20
    do shell script XXX with administrator privileges
     
  9. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Bloß nicht auf den $PATH vergessen...
    Gruß Pepi
     
  10. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Mal analysieren:
    ps ax: Alle Prozesse listen
    | grep airport: die "airport" enthalten
    | grep -v grep: Aber nicht grep
    | cut -f1 -d: Ich nehme an: PID ermitteln

    1. | grep airport | grep -v grep
    geht einfacher in der Vaiante:
    | grep [a]irport

    2. warum nicht einfach
    killall -9 airport
     
  11. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Jo, da hast Du ma echt recht....

    Ich führe das killall nun direkt in Applescript aus - und es funzt!

    Aber: Wieso bekomme ich bei manchen Skripts folgende Anzeige, bei manch anderen aber nicht?

    Alle sind als Programm gespeichert....
     

    Anhänge:

  12. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Weil Du bei manchen Script das Häkchen bei "Startdialog zeigen" (oder so ähnlich) im Speichern-Dialog gesetzt hast, und bei manch anderen aber nicht.
     
  13. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Tatsächlich - Danke!

    Das kommt daher, dass ich manche erst als script gespeichert hatte und bei den ist der Dialog Defaultmässig aktiviert - bei Apps dagegen nicht, jedoch vergessen die Files diese Eigenschaft nicht, wenn man sie später von Skript zu App transformiert.

    Gruß,

    .commander
     
  14. factorx

    factorx Cripps Pink

    Dabei seit:
    28.11.06
    Beiträge:
    155
    Weil man kill(-all) -9 grundsätzlich nicht macht.

    siehe: Useless use of kill -9
     

Diese Seite empfehlen