/etc/init.dを介して起動時に開始されるサービスがあります。これにより、すべてが正しく設定される前にグラフィカルディスプレイマネージャを介してログインできるように、起動プロセスの最後のステップが十分に遅れます。
犯人は私によく必要ないサービスであるネタトークです。
initは第2ラウンドでいくつかのサービスを開始するための多層アプローチをサポートしていますか(そしてどのように)?または、起動時に自動起動を無効にし、手動/etc/init.d/netatalk start
またはrc.local()の最後でサービスを開始する必要がありますか?
私が知っている限り、サービスは次の方法でのみ無効にできます。/etc/default/netatalk
しかし、何かが欠けているかもしれません(netatalk initスクリプト自体を変更することに加えて)?
atalkd
FWIW、バックグラウンドで起動できる古いデーモンが実行されていません(/etc/default/netatalkのオプション)。
編集:主な詳細に言及するのを忘れました。 Kubuntu 14.04.6 LTSです。もはやサポートされていないことを知っていますが、それはポイントではありません。新しいバージョンにアップグレードしない理由があります。最高のパフォーマンスを提供するために、カーネルを更新し、X、Mesa、DRMドライバをすべて更新しましたが、ほとんどのコアOSはまだUbuntu 14.04であり、一部の機能のみが機能するいくつかの奇妙upstart
なsystemd
組み合わせ(/ sbin / initを提供)があります。私が知る限り、小さな効果。
/etc/init.d の多くのスクリプトには、/etc/init に対応するエントリがあり、これは確かにスタートアップ企業で使用されます。
以下の説明で述べたように、/etc/default/netatalkにバックグラウンドオプションが設定されている場合、バックグラウンドですべてのサービスを起動するようにnetatalk initスクリプトを調整しました。それに加えて、私の主な「問題」は、誰かがデスクトップセッションにログインする前に/etc/rc.localで実行している作業を完了する必要があることです。私が知っている限り、このスクリプトは常に最後に実行されるので、最善の選択は、遅い起動サービスを延期するためにinitシステムに依存せずにサービスが自動的に開始されるのを防ぎ、後でステップで「手動で」開始することです。同じです。 /etc/rc.localのアンブル部分。
だから私の質問は:upstartがサービスを完全に無効にせずに自動起動を無効にする方法を提供しますか?
答え1
あなたの質問は完全に信頼できるものであり、netatalkが起動を完了する前にグラフィックシステムを起動するように要求されたのは完全に合理的です。これは依存関係ではなく、グラフィカルログインマネージャの起動に遅れてはいけません。システムでは、できるだけ早く必要な作業を開始できるようにする必要があります。
これが実際にスタート/サービスマネージャーの使命です。可能であれば、サービスを開始し、依存関係を含む必要に応じてアクティブにできるサービスのみを要求に応じてアクティブにすることです。
これで問題は、initスクリプトに依存する古代のUnixoidディストリビューション(おそらく古代のLinuxディストリビューション?)を使用しているようです。そして、これは依存関係やオンデマンドのアクティブ化ではなく、固定された実行順序のみをサポートします。
あなたは打ったこれ古典的なinitシステムを再設計する理由についての古典的な主張です!
したがって、どのLinuxディストリビューションを使用しても問題が見つかりました。解決策は、実際にその名前に合ったブートマネージャを使用することです。恥ずかしがらないでください。過去20年間に、Linuxの設計で学んだことに従うようにLinuxをアップデートしてください。
通常のバニラ Debian を使い始めると、起動時間がより良くなることがわかります。 (古い初期化システムの「膨らんだ」支持者が言うのとは反対です。彼らはすべてのコーナーでそれを見ることができますが、実際にはありません)そこにはありません)起動プロセスを修正するのははるかに簡単です。