Debian で root として自動的に実行されるようにスクリプトを適切にスケジュールする方法

Debian で root として自動的に実行されるようにスクリプトを適切にスケジュールする方法

Debian で root として自動実行されるようにスクリプト (create_ap) をスケジュールする必要があります。これにはcron(sudo crontab -e)を使用しました。動作しますが、動作しません。これは、通常のユーザーがsudoを使用してスクリプトを実行したときと環境が異なるためです。それでは、このスクリプトが自動的に実行されるように適切にスケジュールするにはどうすればよいですか?

ベストアンサー1

必要な環境変数を自動実行スクリプトにコピーするだけです。ハッキングのように見えますが、うまくいきます。

直す。起動時に自動的にスクリプトをrootとして実行する必要があります。通常のユーザーがsudoを使用して手動で起動すると、正常に動作します。しかし、cron(@ rebootステートメント)で始まると、効果はありません。違いを見つけるために、これらのコマンドの出力をid、env、iwconfigファイルにダンプする小さなスクリプトを作成しました。 2回実行:ユーザーがsudoを実行し、cronがスケジュールします。このログでは、cronが切り捨てられた環境でスクリプトを起動し、PATHが短く見え、iwconfigも見つからないことを発見しました。この問題を解決するために、テキストエディタを使用して2つの環境変数(PATHとSHELL)を元のスクリプトにコピーしました。スクリプトは、上部に2つの追加の文字列がある場合と同じように見えます。

エクスポート PATH=full_path_from_env

SHELL=/bin/bash エクスポート

うまくいきます。

おすすめ記事