2021年9月3日金曜日

Launchctlで自前のスクリプトが動かないエラーの対応法

備忘録をかねてのメモ.

macOS Big Sur で,launchctlを使って定期的にスクリプトを動かそうとしたら,どうにもこうにも動かないので難儀した.設定ファイルのplistに次のコードを入れてエラーログを吐かせてみると,getcwdがアカンというメッセージが……

<key>StandardErrorPath</key>

<string>/tmp/test-err.log</string>

<key>StandardOutPath</key>

<string>/tmp/test-out.log</string>

具体的には,こんなエラーが出る.

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted

それでエラーメッセージでググってみたら,「Mac OS X error: shell-init: error retrieving current directory」と題されたページを発見.

結論からいうとこれだった.システム設定で /bin/bash にフルディスクアクセスを与えよ,なんだとか(下図).

たぶん,こんなことしようとする人はあまりいないんだろうな.それにしてもセキュリティも大事だけれど,使い勝手が悪くなってしまってはどうしようもないんだがねえ(難しいところで,使い勝手優先でセキュリティがガバガバな某OSみたいなんも困るけど)



0 件のコメント:

コメントを投稿