.plist gibt zurück: Ungültige Eigenschaftsliste, plutil sagt ok!

Ich versuche, meine erste .plist zu erstellen. Ich möchte beim Anmelden ein SSH-Laufwerk mounten, damit ich den Befehl nicht jedes Mal eingeben muss, wenn ich meinen Mac starte!

Der Befehl lautet:sshfs -o allow_other,defer_permissions user@xxx.xxx.xxx.xxx:/home/user/ /Users/user/Desktop/Website/ -o reconnect

Die Plist sieht so aus:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>name.plist</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/sshfs</string>
                <string>-o allow_other,defer_permissions</string>
                <string>user@xxx.xxx.xxx.xxx:/home/user</string>
                <string>/mnt/User</string>
                <string>-o reconnect,volname=User</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

Ich habe ein Tutorial befolgt, das besagt, wenn ich mit der .plist fertig bin, muss ich diese 2 Befehle ausführen:

launchctl load ~/path/name.plist
launchctl start ~/path/.name.plist

Es kehrt dann zurückInvalid property list

Ich habe gesehen, dass Launchctl sagt, dass plist ungültig ist, plutil sagt, dass es in Ordnung ist , wo es heißt, dass ich die ersten paar Zeilen ersetzen sollte, aber keine Änderung? plutil gibt ok zurück, wenn es ausgeführt wird, also bin ich verloren!

PS

Ich habe die folgende Vorlage verwendet , die von user3439894 gepostet wurde. Diesmal lädt es richtig, aber wenn ich es starte, passiert nichts

Wenn ich mir das Systemlog ansehe, steht da nichts darüber....

Über den Pfad zu sshfs habe ich 2 Dinge versucht:

  1. Ich habe es so gelassen, wie es in dem unten angegebenen Beispiel stand.
  2. Ich habe einen Vorschlag gemacht und den Pfad /usr/local/bin/sshfs erneut hinzugefügt
Sie konzentrieren sich auf das Dateiformat und nicht auf den Prozess, den Sie durchführen. Sie sollten sich die Dokumentation für LaunchAgents ansehen, z. B. developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… Sagt das Tutorial auch, welcher Pfad verwendet werden soll

Antworten (1)

Da es schwieriger wäre, dies in einem Kommentar zu posten, poste ich es als Antwort, obwohl es möglicherweise nicht das Richtige ist.

Ich habe Ihre Befehlszeile verwendet , während ich Lingon X verwendet habe, um die .plist- Datei zu erstellen. So wurde die Befehlszeile analysiert , die sich von Ihrer unterscheidet.


<?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>Label</key>
    <string>name</string>
    <key>ProgramArguments</key>
    <array>
        <string>sshfs</string>
        <string>-o</string>
        <string>allow_other,defer_permissions</string>
        <string>user@xxx.xxx.xxx.xxx:/home/user/</string>
        <string>/Users/user/Desktop/Website/</string>
        <string>-o</string>
        <string>reconnect</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Sie werden feststellen, dass ich zwar die Befehlszeile verwendet habe , die Sie in Ihrer Frage haben, aber den Pfad zu nicht enthielt sshfs, Sie diesen jedoch möglicherweise wieder hinzufügen müssen. Die andere Sache, die es anders gemacht hat, ist, dass jede Zeichenfolge im Array die Informationen bis einschließlich der Leerzeichen zwischen den Argumenten enthält. Vielleicht macht das einen Unterschied. Kann ich nicht sagen, da ich Ihre Befehlszeile nicht testen kann, aber es ist einen Versuch wert, das von Lingon X erstellte Format zu verwenden.

Ty für Ihre Antwort user3439894 Ich habe meine Frage aktualisiert. Könnten Sie sie sich bitte ansehen und sagen, ob Ihnen etwas einfällt?
@user297239, Wird die Befehlszeile im Terminal ohne Benutzereingabe ausgeführt? Mit anderen Worten, wenn Sie die vollständige Befehlszeile mit den tatsächlichen Informationen eingeben oder kopieren und einfügen und die Eingabetaste drücken ... kehrt die Eingabeaufforderung ohne etwas anderes zurück, als die Eingabetaste zu drücken ? Wenn ja, würde ich versuchen, dies in Form eines Anwendungsskripts als Automator-, AppleScript- oder Platypus-Anwendung als Anmeldeelement über Systemeinstellungen > Benutzer & Gruppen > Aktueller Benutzer > Anmeldeelemente auszuführen und dann zu prüfen, ob eine andere Ausführungsmethode verwendet wird funktioniert darüber als Launch Agent/Daemon mit einer .plist- Datei.