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


2

Ich versuche meine erste .plist zu erstellen. Ich möchte beim Anmelden ein SSH-Laufwerk einbinden, 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 Pliste 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 bin einem Tutorial gefolgt, in dem ich sagte, 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ück Invalid property list

Ich habe gesehen, dass Launchctl sagt, dass plist ungültig ist, plutil sagt, dass es in Ordnung ist , wo es sagt, dass ich die ersten paar Zeilen ersetzen soll, aber keine Änderung? Plutil Rückkehr ok, wenn laufen, so bin ich verloren!

PS

Ich habe die Vorlage unten verwendet, die von user3439894 gepostet wurde. Diesmal wird es richtig geladen, aber wenn ich es starte, passiert nichts

Wenn ich mir das Systemlog ansehe, ist nichts darüber gepostet ...

Über den Pfad zu sshfs habe ich zwei Dinge ausprobiert:

  1. Ich habe es so belassen, wie es in dem unten angegebenen Beispiel stand.
  2. Ich habe einen Vorschlag gemacht und den Pfad erneut / usr / local / bin / sshfs hinzugefügt

Sie konzentrieren sich auf das Dateiformat und nicht auf den Prozess, den Sie gerade ausführen. Sie sollten für LaunchAgents- bei Dokumentation aussehen zB developer.apple.com/library/mac/documentation/MacOSX/Conceptual/... auch das Tutorial sagen nicht , welchen Weg zu verwenden
Mark

Antworten:


1

Da es schwieriger wäre, dies in einem Kommentar zu veröffentlichen, schreibe ich es als Antwort, obwohl es möglicherweise nicht das richtige ist.

Ich habe Ihre Befehlszeile verwendet, als Sie mit Lingon X die PLIST- Datei erstellt haben. Hier sehen Sie, wie die Befehlszeile analysiert wurde , 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 angegeben haben, aber nicht den Pfad zu enthielt, aber sshfsmöglicherweise müssen Sie diesen zurückfügen. Das andere, was es anders gemacht hat, ist, dass jeder String im Array die Informationen enthält, jedoch nicht die Leerzeichen zwischen den Argumenten. Vielleicht macht das einen Unterschied. Das kann ich nicht sagen, da ich Ihre Befehlszeile nicht testen kann. Es lohnt sich jedoch, 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 feststellen, ob Ihnen etwas in den Sinn kommt?
User297239

@ 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 ... wird die Eingabeaufforderung ohne weitere Eingabetaste zurückgegeben ? Wenn ja, würde ich versuchen, dies in Form eines Anwendungsskripts entweder als Automator-, AppleScript- oder Platypus-Anwendung als Anmeldeelement unter Systemeinstellungen> Benutzer und Gruppen> Aktueller Benutzer> Anmeldeelemente auszuführen. Versuchen Sie dann, eine andere Ausführungsmethode zu verwenden funktioniert so als Launch Agent / Daemon mit einer .plist- Datei.
user3439894
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.