Der Befehl "say" funktioniert nicht mit dem Befehl "at"
418
holmescn
Ich verwende macOS 10.13.5 und möchte, dass der Mac etwas sagt, beispielsweise die aktuelle Uhrzeit, mit dem at
Befehl für die angegebene Zeit.
Ich habe den atrun
Dämon bereits geladen und der folgende Befehl funktioniert:
at now + 1 minute echo "blah" > /tmp/test.txt
Wenn ich jedoch einen say
Befehl mit dem at
Befehl verwende, macht er nichts:
at now + 1 minute say 'hello'
Ich würde gerne wissen, was passiert ist. Gibt es ein Protokoll oder etwas, was ich herausfinden kann?
Ich bin etwas besessener geworden als ich sollte. Etwas über "say" funktioniert nicht ohne direkte Interaktion mit der Standardausgabe oder der "at" -Befehl funktioniert nicht ähnlich.
JakeGould vor 6 Jahren
0
Ich denke, es ist wahrscheinlicher, dass der Befehl "say" nicht Teil der Anmeldesitzung des Benutzers ist (insbesondere der Mach-Bootstrap-Kontext). Der `atrun`-Daemon läuft als root und führt den Befehl (z. B. say) unter der entsprechenden Benutzer-ID aus, ohne jedoch den Kontext zu wechseln, und hat daher keinen Zugriff auf die Lautsprecher. Dies ist alles ziemlich schlecht dokumentiert, aber es gibt einige Informationen [hier] (https://derflounder.wordpress.com/2016/03/25/running-processes-in-os-x-as-the-logged-in-user -von-außerhalb des Benutzerkontos /).
Gordon Davisson vor 6 Jahren
1
@GordonDavisson Ich habe versucht, mit launchctl asuser $ (id -u Benutzername) / usr / bin / say hallo als Aufgabe auszuführen, immer noch nicht funktioniert.
holmescn vor 6 Jahren
0
Ich habe versucht, eine Plist-Datei zu schreiben, die zum Starten WatchPaths verwendet. Was ich erwartet habe, ist, wenn ich einen Text in /tmp/say.txt schreibe, der Lauchd führt `say -f / tmp / say.txt 'aus, aber er ist fehlgeschlagen.
holmescn vor 6 Jahren
0
Was ist seltsam, dass man beim Ausführen von cron-Jobs "say" in eine .sh-Datei packen kann und alles funktioniert. Aber ich habe es mit 'at'-Befehl versucht, gescheitert.
holmescn vor 6 Jahren
0
@holmescn Als Cron-Job würde der Befehl "say" weiterhin als Benutzer ausgeführt. Wo, wie Gordon Davisson erklärt, der Befehl "atrun" als "root" ausgeführt wird.
JakeGould vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
3
Beschleunigung der Bootzeiten von OS X bei einem Jahr alten MBP
-
3
Wie ordnen Sie ein Airport Time Machine-Backup nach der Migration auf einen neuen Mac wieder zu?
-
6
Wie können Sie den Startton auf einem Mac stummschalten?
-
5
Warum wird mein Macbook bei der Verwendung von Boot Camp extrem heiß?
-
7
Gibt es unter Mac OS X ein Strg + Tab-Äquivalent?
-
6
Weg, um Time Machine-Daten auf eine neue Festplatte zu migrieren
-
13
Setzen Sie die Windows-Position von Mac OS X nach dem Abnehmen des externen Monitors zurück
-
10
Sicherungssoftware für Mac OS X
-
5
Wie kann ich unter Mac OS X einen .kext deinstallieren und entfernen?
-
4
Wie kann ich die Auswurftaste auf der MacBook-Tastatur erneut "löschen"?