cronのPATHはどこに設定されていますか?
Cronは、crontabを持つユーザーのパスを使用せず、代わりに独自のパスを持ちます。PATH=/foo/barcrontabの先頭に追加することで簡単に変更でき、古典的な回避策は、cronによって実行されるコマンドへの絶対パスを常に使用することですが、cronのデフォルトPATHはどこで定義されていますか? 私はArchシステム(cronie 1.5.1-1)で次の内容のcrontabを作成し、Ubuntu 16.04.3 LTSボックスでも同じ結果をテストしました: $ crontab -l * * * * * echo "$PATH" > /home/terdon/fff 印刷されたもの: $ cat fff /usr/bin:/bin しかし、なぜ?デフォルトのシステム全体のパスはに設定され/etc/profileていますが、他のディレクトリが含まれています。 $ grep PATH= /etc/profile PATH="/usr/local/sbin:/usr/local/bin:/usr/bin" /etc/environmentまたは/etc/profile.dに関連するものは他にありません。私が考えた他のファイルは、おそらくcronによって読み取られる可能性があります。 $ grep PATH= /etc/profile.d/* /etc/environment /etc/profile.d/jre.sh:export PATH=${PATH}:/usr/lib/jvm/default/bin /etc/profile.d/mozilla-common.sh:export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins" /etc/profile.d/perlbin.sh:[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl /etc/profile.d/perlbin.sh:[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin …