Filesystem-Zugriff von Background-Scripten blockiert

pucicu

pucicu

Mitglied
Thread Starter
Dabei seit
11.04.2007
Beiträge
57
Reaktionspunkte
7
Hallo,
ich habe ein shell-script (zsh), in dem ich ein paar Abfragen mache, einen ssh-Tunnel erzeuge und dann per rsync das User-Verzeichnis auf einen externen Server synce (als externes Backup – hat mich schon gerettet). Das script wird per launchagent regelmäßig ausgeführt. Das mache ich schon seit Jahren so und bisher funktionierte das bestens.

Seitdem ich auf von Mojave auf BigSur umgestiegen bin, klappt es aber nicht. Wenn ich das script in einem Terminalfenster teste, klappt es ohne Probleme. Aber wenn es im Hintergrund per launchagent automatisch aufgerufen wird (mit meiner User-ID), dann ist das für das script das zu kopierende Verzeichnis leer (mit der Folge, daß rsync das externe Backup löscht). Das hat mich einige Zeit gekostet, das herauszufinden. Und ich kann das eigentlich nicht ganz verstehen. Aber es scheint so, daß im Hintergrund ausgeführte Prozesse erstmal nicht auf das Filesystem zugreifen dürfen.

Wie kann man das ändern? Ich hätte schon ganz gerne, daß das script per launchd automatisch und im Hintergrund ausgeführt wird.

Vielen Dank für Hilfe!
 
Datenschutz Einstellungen?
 
Du könntest versuchen launchd via Systemeinstellungen vollen Zugriff auf dein Home-Verzeichnis zu gewähren, die Binary liegt standardmäßig in /sbin.
 
  • Gefällt mir
Reaktionen: mausfang
Danke. Ich bin grad noch am weiter testen. Ich muß noch hinzufügen, daß das Vezeichnis, daß ich kopiere, auf einer externen Festplatte liegt. Mein homeverzeichnis wird offenbar erkannt. Aber nicht das auf der externen Platte.

Ich hatte auch schon in den Systemeinstellungen die Datenzugriffs-Rechte für die shell-skripte eingestellt. Für launchd noch nicht. Das probier ich auch mal.
 
Externe Platte im Standby und beim Zugriff dauert es zu lange die zu wecken?
 
Hab ich schon getestet. Sie ist online. Wenn ich das script direkt ausführe, geht es ja. Nur nicht im launchd-Modus. Ich bin am Verzweifeln.
 
Guck doch mal in die Logs, was launchd für einen Fehler meldet.
 
launchd selber meldet keine Fehler. Allerdings lasse ich jetzt noch die Fehler von dem script loggen und sehe da, daß es eine Menge "Operation not permitted"-fehler gibt. Immer wenn ich auf das Verzeichnis zugreifen will. Nehme ich ein anderes Verzeichnis, z. B. das Homeverz., gibt es nicht diese Fehler.
 
Wer ist denn Eigentümer des externen Verzeichnisses, welche Rechte sind gesetzt? Vielleicht ACL?
Am besten im Terminal schauen, der finder ist da nicht besonders genau.
 
Danke für die Tips! Ich arbeite bei solchen Sachen immer im Terminal. Eigentümerrechte hatte ich auch schon im Verdacht, aber daran lag es nicht. Mittlerweile habe ich das Problem gefunden. Das Skript wird ja durch eine bestimmte shell ausgeführt (am Anfang des Skriptes mit
Code:
#!/bin/zsh
spezifiziert). Nur muß man halt dieser Shell auch die Dateifreigabe in den Systemeinstellungen geben. Es reicht nicht, es nur den Befehlen zu geben, die im Skript benutzt werden. Die shell selber braucht es auch.

So einfach also …

Aber diese paranoide Freigabe-Policy nervt schon irgendwie.
 
  • Gefällt mir
Reaktionen: Schiffversenker
Zurück
Oben Unten