init.d起動スクリプトを作成する方法


8

起動時に非常に簡単なコマンドを実行したいだけです。どうやってやるの?私はグーグルを検索しましたが、非常に複雑な例がありますが、必要なのは起動時にこのスクリプトを実行することだけです。どうやってやるの?

脚本

./init.d/opscenter-agent start

回答:


8

(コンピューターにログインするときではなく)システムの起動時にこれを実行する場合は、実行するコマンドをに配置します/etc/rc.local

[Ubuntu]起動時とシャットダウン時のスクリプトの実行を参照してください。


OPは特にinit.dスクリプトを要求しましたが、これは実際にはありません。これは関連するアプローチであり、主に30年前に私たちが行ったことのおかげで、init.dのような新しいアプローチのおかげで、今ではほとんどやっていません。(systemdの/ etc / initのために廃止予定です)。
mc0e

3

スクリプトをrootで実行する必要がない場合は、次のようにすることができます。

1)[スタートアップアプリケーションの設定]を開き(Alt+ F2と貼り付けgnome-session-propertiesEnter)、

2)[追加]を押してスクリプトを選択します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


グラフィカル環境を使用していない場合はexit 0、このファイルの行の直前にコマンドを置くことができます/etc/rc.local。(編集するには、ターミナルに貼り付けsudo nano /etc/rc.localます。


私はDebianのサーバを管理するために、パテを使用していたので、無GUI :)ない良い
sedの

あなたはこのファイル内のコマンド(またはスクリプトへのリンク)を置くことができます:/etc/rc.local
desgua

これは、OPが要求したinit.dスクリプトの代替です。
mc0e

1

/etc/rc.localアプローチは「起動時に非常に単純なコマンドを実行」しますが、init.dスクリプトアプローチではなく、さまざまな点で劣っています。(あなたの目的によっては、それは問題ではないかもしれません)。

init.dスクリプトとは異なり、rc.localコマンドは、プロセスを開始および停止するための標準インターフェースを提供していません。また、起動プロセスで実行されるときに影響を与える機能はあまりありません。/etc/init.d/rc.localスクリプトで他のすべての後に実行されることがわかります(Required-Start: $all)。

init.dスクリプトが本当に必要なものである場合は、通常、既存のスクリプトを取得し、それをコピーして編集するだけで問題なく動作しますが、既存のスクリプトの中には、必要以上に複雑なものがあります。これがほとんどのinit.dスクリプトの開始方法なので、ubuntuはこの目的のために/etc/init.d/skeletonを提供します。

また一見の価値があります:

  • /etc/init.d/motd起動時に何かを実行する最小限の例ですが、Required-Start必要なときにパラメーター設定を使用します。
  • /etc/init.d/cronデーモンプロセスの単純な開始点です(parse_environmentおそらく必要のない関数を与えるか、取ります)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.