
PCの起動時にいくつかの簡単なタスクを実行できるLinuxシステム用の小さなスクリプトを作成したいと思います。スクリプトはPythonで書かれる可能性が高いですが、Cやシェルを使うこともできます。
問題は、私がWindows開発者であり、オンラインチュートリアルが受賞しているようです。
一部はすべてのファイル記述子を閉じ、一部はそうではなく、一部は再起動を実装し、強制再起動を実装し、一部はそうではありません。後で標準に違反するようです。そして私を混乱させる全体的なGIDがあります。
したがって、デフォルトでは、安定したデーモンにどのスクリプトライブラリを使用できるのか、どのスクリプトライブラリが自分のコンピュータで動作しているのかわからないので、正しいタイプです。
それから偶然見つけたhttp://manpages.ubuntu.com/manpages/hardy/man1/daemon.1.htmlこれはデーモンを安全に生成するための正式なプロセスのようです。しかし、もう一度お話ししますが、私が正しく理解した場合、既存のプロセスではなく起動を実行するのはinit.dのスクリプトです。
その後、長期実行ジョブに使用する必要がある「nice」があり、正しく使用すると他の問題が発生する可能性があります。
だから私はここで迷子になりました。誰でも私に警告しないでください、またはオンラインで情報を見つけることができる場所を教えてください。
PS私が呼び出したいスクリプトはプロセスを呼び出す必要があります。これは、各プロセスに対してデーモンが分岐することを意味しますか?
答え1
いくつかの方法があります。 cron特殊文字列を使用することをお勧めします@reboot
。
$ crontab -e
@reboot /path/to/my/command.sh
答え2
起動時にスクリプトを実行するには、次の場所にスクリプトファイルを保存します。
/etc/rc#.d/
目次。ここで、#はランレベルです。ランレベル0から6までは、すべてのシステムでサポートされています。ランレベルは次のとおりです。
0: Halt
1: Single User Mode
2: Basic Multi-user mode (No networking)
3: Basic text mode (multiuser)
4: Multi-user mode
5: GUI based multiuser mode
6: Reboot
このスクリプトは、最初の文字に基づいて自動的に起動されます。次に始まるスクリプト
S: start at system startup
K: start during system shutdown
共通名のスクリプトがある場合(例:
S<name>
K<name>
K プレフィックスが付いたスクリプトは、S プレフィックスが付いたスクリプトの前に実行されます。
答え3
Debian ベースのディストリビューションの場合:
/etc/rc.local
そこにスクリプト名を入力し、フルパスを忘れないでください。
答え4
起動時にいくつかの作業を行う必要がある場合は、最善の方法は独自のinit.dスクリプトを追加することです。一部のクローン(たとえば、fcron)を使用すると、起動時にジョブを実行することもできます。
Pythonで書いたかどうかは関係ありません。 ELFまたは#!
最初の行にhashbang()がある限り、同じように処理され実行されます。