Ubuntu 15.04には次のファイルがあります。/usr/local/bin/myscript(私が作ったスクリプトです。)
マイアカウントでこのコマンドを実行すると、rootとして実行するために必要な操作が実行されます。sudo /usr/local/bin/myscript
今やりたい/usr/local/bin/myscriptコンピュータの起動時にルートとして実行されます(パスワードを入力せずにsudoコマンドを実行するのと同じ)。 Ubuntu 15.04ではどうなりますか?
ベストアンサー1
今systemdに答えがあります。
Ubuntuバージョン15を使用しています。あなたは体系化しました。 /etc/rc.local
せいぜいsystemdの以前のバージョンとの互換性メカニズムです。以下のハイパーリンクでリンクされたAskUbuntuの質問に表示されている混乱を使用すると、ひどく間違っている可能性があります。したがって、適切なシステムサービスユニットを作成してください。
/etc/systemd/system/
ローカル、非システム、および非パッケージのサービスユニットを作成するので、そのタイプのユニットがある場所にユニットファイルが配置されます。ただそう呼んでください/etc/systemd/system/myscript.service
。これには以下が含まれます。
[単位] 説明=user2580のスクリプト ドキュメント=https://unix.stackexchange.com/questions/202698/ [提供する] タイプ=シンプル ExecStart=/usr/local/bin/myscript [インストールする] WantedBy =マルチユーザー。ターゲット
スクリプトが「デーモン用」に分岐している場合は、そうしないようにしてください。それは完全に不要です。
systemctl preset myscript.service
起動時に自動的に起動するには、スーパーユーザーとして実行してください。systemctl start myscript.service
手動で起動するには、今すぐ実行(スーパーユーザーとして)してください。- 実行し
systemctl status myscript.service
てステータスを確認してください。
Xサーバーと通信できるコンテキストではスクリプトは実行されません。 Xサーバーが起動する前に実行することもできます。ただし、Xクライアントになるための要件については言及しておらず、HOME
初心者には複雑な環境変数やその他の問題についても言及していません。とにかく、これらは他の質問のトピックです。だから私はそのままにします。
追加読書
- https://unix.stackexchange.com/a/200281/5132
- ジョナサン・ドボイン・ポラード(2001)。 「単に「デーモンを背景に置く」ためにフォーク()を使用しないでください。」。 Unixデーモンを設計する際に避けるべき間違い。一般的な答え。