1

Я бы хотел запускать offlineimap каждые несколько минут, чтобы обновить мой каталог сообщений. Я не могу получить файл plist для загрузки offlineimap без использования sudo.

При беге

launchctl load -S Aqua /path/to/plist

Я получаю там ошибку:

launch_msg(): Socket is not connected

Что, я считаю, связано с тем, что у меня нет разрешений sudo для сокета.

Попытка

sudo launchctl load -S Aqua /path/to/plist

Работает без проблем, но затем offlineimap ищет файл .offlineimaprc в /var /root, который бесполезен. Я полагаю, что это потому, что offlineimap работает от имени пользователя root.

Кто-нибудь может предложить какие-либо предложения? Я собираюсь начать вырывать мои волосы.

ОТВЕТ

Я использовал iTerm2 в качестве терминального клиента. Это не похоже на приложение Aqua, поэтому я не могу получить доступ к сокету aqua session с launchctl. Запуск той же команды в Terminal.app позволил мне тоже.

Спасибо Гордону за предложение, которое приведет к ответу.

2 ответа2

2

Это ошибка, которую выдает launchctl, когда вы не являетесь частью соответствующего типа сеанса. В этом случае похоже, что вы пытаетесь загрузить свой запущенный элемент в сеанс Aqua (то есть вход в систему через GUI), и это не удается, потому что вы не работаете в таком сеансе. Вы SSHing в компьютер или что-то в этом роде?

Кстати, причина, по которой он работает, когда sudoed, заключается в том, что запуск launchctl от имени root всегда говорит с сеансом System (очевидно, это отменяет опцию -S Aqua ), которая всегда есть.

1

Если вы все еще хотите использовать launchctl из iTerm2, вы также можете сделать это:

sudo launchctl load -F /path/to/plist

Это должно работать, так как у меня также та же проблема, что и у вас, когда я пытаюсь выполнить "нормальную" загрузку из iTerm2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .