Команда 'say' не работает с командой 'at'
372
holmescn
Я использую macOS 10.13.5 и хочу, чтобы Mac сказал что-то, например, текущее время, с помощью at
команды для указанного времени.
Я уже загрузил atrun
демон, и работает следующая команда:
at now + 1 minute echo "blah" > /tmp/test.txt
Но когда я использую say
команду с at
командой, она ничего не делает:
at now + 1 minute say 'hello'
Я хотел бы знать, что случилось. Есть ли журнал или что-то, что я могу сделать, чтобы узнать?
Я стал немного одержим этой проблемой, чем я должен быть. Что-то о том, что `say 'не работает без прямого взаимодействия со стандартным выводом, или команда` at` не работает аналогично.
JakeGould 6 лет назад
0
@Jake. Могу ли я подумать, что это скорее всего связано с тем, что команда `say` не является частью сеанса входа пользователя (в частности, в контекст начальной загрузки Mach). Демон atrun запускается от имени пользователя root и запускает команду (например, `say`) под соответствующим идентификатором пользователя, но без переключения контекста и, следовательно, не имеет доступа к динамикам. Все это довольно плохо документировано, но есть некоторая информация [здесь] (https://derflounder.wordpress.com/2016/03/25/running-processes-in-os-x-as-the-logged-in-user -из-вне-пользователи-счет /).
Gordon Davisson 6 лет назад
1
@GordonDavisson Я пытался запустить launchctl asuser $ (id -u username) / usr / bin / сказать привет как задание для запуска, но все еще не работает.
holmescn 6 лет назад
0
Я попытался написать файл plist, который использует WatchPaths для запуска. Я ожидал, что когда я напишу какой-нибудь текст в /tmp/say.txt, lauchd запустит `say -f / tmp / say.txt`, но это не удалось.
holmescn 6 лет назад
0
Что странно, что при запуске cron job можно записать `say` в файл .sh, и все работает. Но я попробовал это с командой `at`, но не получилось.
holmescn 6 лет назад
0
@holmescn В качестве задания cron команда `say` все равно будет работать от вашего имени. Где, как объясняет Гордон Дэвиссон, команда atrun запускается как root.
JakeGould 6 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
3
Ускорение загрузки OS X на годичной MBP
-
3
Как повторно связать резервную копию Airport Time Machine после перехода на новый Mac?
-
6
Как вы отключите звук запуска на Mac?
-
-
5
Почему мой Macbook сильно нагревается при использовании Boot Camp?
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Способ переноса данных Time Machine на новый диск
-
13
Сброс положения Mac OS X Windows после отсоединения внешнего монитора
-
10
Программное обеспечение для резервного копирования для Mac OS X
-
5
Как удалить и удалить .kext в Mac OS X?
-
4
Как переназначить клавишу извлечения на клавиатуре MacBook, чтобы «удалить»?