The "no plist was returned" error means that it was unable to parse the .plist file. I see two problems offhand: Lable
should be Label
, and </true>
should be <true/>
. You can use the command plutil -lint ~/Library/LaunchAgents/local.sshfs_mounts.plist
to check the plist syntax, although it will not detect whether the data in the plist is valid as a launchd item.
OSX-Run-Skript zum Einhängen von sshfs bei der Anmeldung mit einer plist-Datei
Ich habe die Manpages zu plist und launchd.plist durchgelesen, sowie Beiträge zum Verwenden von plist-Dateien zum Ausführen von Skripts beim Anmelden. aber ich kann scheinen, die Dinge zum Laufen zu bringen.
Standort und Berechtigungen meines Skripts:
sshfs_mounts.sh
:
ls -al Library/scripts/ -rwxr-xr-x 1 jason staff 288 May 10 17:06 sshfs_mounts.sh
cat Library/scripts/sshfs_mounts.sh
#!/bin/bash # ## automounting of sshfs directories mount_cosmic () { /usr/local/bin/sshfs jason@iss.nasa.gov:/media/NetworkShare/spacedock-1 /Users/jason/share; } mount |grep "/Users/jason/share/" if [ $? == 1 ] && [ -d "/Users/jason/share" ] && [ $USER == "jason" ]; then mount_cosmic fi
AUS ORIGINAL POST BEARBEITET:
Wenn ich das Skript manuell ausführe, wird es wie erwartet ausgeführt. Ich kann plist ( launchctl load ~/Library/LaunchAgents/local.sshfs.plist
) laden und starten ( launchctl start ~/Library/LaunchAgents/local.sshfs
), aber das Skript wird nicht ausgeführt. In den Logs ( cat /var/log/system.log |grep local.sshfs
) bekomme ich:
May 11 09:30:26 rover com.apple.launchd.peruser.504[305] (local.sshfs.plist): Throttling respawn: Will start in 10 seconds
Hier sind mein Standort und meine Berechtigungen für die Plist-Datei:
ls -al Library/LaunchAgents/local.sshfs.plist -rw-r--r-- 1 jason staff 419 May 10 18:14 Library/LaunchAgents/local.sshfs_mounts.plist
Und die Akte (BEARBEITET nach Gordons Rat ^ 2):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>local.sshfs.plist</string> <key>ProgramArguments</key> <array> <string>/bin/sh</string> <string>/Users/jason/Library/scripts/sshfs_mounts.sh</string> </array> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/tmp/sshfs_mounts.err</string> <key>StandardOutPath</key> <string>/tmp/sshfs_mounts.out</string> </dict> </plist>
Mahalo im Voraus.
2 Antworten auf die Frage
Dank Gordon, der mir bei der Fehlerbehebung half, konnte ich die plist-Datei richtig formatieren lassen (ich habe am Ende plistEdit pro verwendet, da plists sehr wählerisch sind und ein Text-Editor verwendet, was für mich nicht funktionierte) Skript, das ich beim Login ausgeführt habe.
Es gab zwei Dinge, die mich störten. Der erste ist, dass launchd mein Skript nicht dazu veranlasst hat, einen Unterprozess zu erzeugen, der zum Einhängen eines sshfs-Verzeichnisses erforderlich ist. Dies wurde durch Hinzufügen des folgenden Schlüsselwertpaares behoben:
<key>AbandonProcessGroup</key> <true/>
(Danke an tw vom Forum von macworld.com )
Dank Gordons Vorschlägen konnte ich wieder Fehler auslesen /tmp/sshfs_mounts.err
und feststellen, dass mit meiner Schreibweise etwas nicht stimmte. Ich habe ein paar Suchen nach sshfs-Mounts durchgeführt und auf einigen Linux-Sites Informationen gefunden, die mir beim Erstellen eines besseren Mount-Befehls geholfen haben.
Also hier ist was funktioniert.
Skript:
mount | grep /Users/jason/share if [ $? == 1 ] && [ -d /Users/jason/share ]; then /usr/local/bin/sshfs -o idmap=user jason@iss.nasa.gov:/spacedock-1 /Users/jason/share fi
plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>AbandonProcessGroup</key> <true/> <key>Label</key> <string>local.sshfs.plist</string> <key>ProgramArguments</key> <array> <string>/Users/jason/Library/scripts/sshfs_mounts.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
Verwandte Probleme
-
3
Warum stürzt der Macbook Pro Unibody im Ruhezustand unter Windows ab?
-
3
Beschleunigung der Bootzeiten von OS X bei einem Jahr alten MBP
-
2
iTunes auf dem Mac: Wie verwendet man eine externe Musikbibliothek auf einem NAS (Windows-Freigabe)?
-
3
Wie ordnen Sie ein Airport Time Machine-Backup nach der Migration auf einen neuen Mac wieder zu?
-
4
Wie kann ich ein ISO-CD-Image auf einem Mac in das bin / cue-Format konvertieren?
-
6
Wie können Sie den Startton auf einem Mac stummschalten?
-
5
Warum wird mein Macbook bei der Verwendung von Boot Camp extrem heiß?
-
5
Das Macbook Pro stößt ständig alles aus, was ich in das interne optische Laufwerk eingelegt habe
-
4
Gibt es Alternativen zu TextExpander unter Mac OS X?
-
7
Gibt es unter Mac OS X ein Strg + Tab-Äquivalent?