問題タブ [init.d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gentoo - Gentoo で Apache Archiva スタンドアロンを実行していますか?
Gentoo 2.6.12 r6 を実行しているサーバーがあり、起動時に Apache Archiva をスタンドアロン サーバーとして実行したいと考えています。これを達成するための init.d スクリプトを持っている人はいますか? ありがとう!
linux - init.d スクリプトを Ubuntu/Debian Linux から Solaris に変換するにはどうすればよいですか?
いくつかのデーモンを開始するために使用している init.d スクリプトがいくつかあります。インターネットで見つけたこれらのスクリプトのほとんどは、すべて start-stop-daemon を使用しています。私の理解では、「start-stop-daemon」は Linux または BSD ディストリビューションに固有のコマンドであり、Solaris では使用できません。
init.d スクリプトを Linux から Solaris に変換する最良の方法は何ですか? 大まかに使用できる start-stop-daemon に相当するコマンドはありますか?
私はあまり Solaris ユーザーではないので、私の質問が本質的に無効かどうかさえわからないことを前もって認めておきます。
linux - Linux サービスを別のユーザーとして実行するためのベスト プラクティス
サービスはデフォルトroot
で、RHEL ボックスの起動時に開始されます。私の記憶が正しければ、 の init スクリプトを使用する他の Linux ディストリビューションでも同じことが言えます/etc/init.d
。
代わりに、プロセスを選択した (静的) ユーザーとして実行する最良の方法は何だと思いますか?
私がたどり着いた唯一の方法は、次のようなものを使用することでした:
しかし、これは少し面倒なようです...
root 以外の他のユーザーとしてサービスを自動的に開始するための簡単なメカニズムを提供する魔法のようなものは隠されていますか?
編集:このインスタンスで開始しているプロセスは、Python スクリプトまたは Java プログラムのいずれかであると言うべきでした。それらの周りにネイティブラッパーを書きたくないので、残念ながら、ブラックが示唆するようにsetuid()を呼び出すことができません。
mysql - Ubuntu 8.04 で mysql を再起動するスクリプトの改善
Ubuntu 8.04.2で言うと、CPU の 99% をsudo /etc/init.d/mysql restart
消費するプロセスが残っていることがあります。mysql_safe
マシンを実質的に使用不能にする。
mysql を再起動するより良い方法はありますか? 私はスクリプトを書くことを考えました:
しかし、これは悪い回避策になります。(そして、スクリプトは簡単なショットです)
私はグーグルで調べて、それがmysql_safe
起動するラッパースクリプトであることがわかりましたmysqld
。したがって、物事を再起動するためのより良い方法があるはずです。
これは、この ubuntu バージョンの一般的な問題であるとググりました。この時点で Debian / Ubuntu は間違っているのでしょうか? /etc/init.d
スクリプトは非常に洗練されているように見え、それも処理しますmysql_safe
が、私のスキルはそれを完全に理解するのに十分ではありません. しかし、これは改善するのに最適な場所です。これは私のマシンのバージョンの貼り付けです(変更されていません):
多くのヒントが見つかりましたが、これは本番サーバー用にある程度の信頼性で解決してほしいです。
編集: まさにこの未解決のバグのようです。
これは関連または同一のようです。
の 2 つのインスタンスによる競合状態について話す人もいますmysql_safe
。起動スクリプトの健全性チェックをコメントアウトすることを提案する人もいます。
qt - 起動時に Linux デーモンとして Qt アプリケーションを実行する
TCP サーバーなどを含む Qt アプリケーションを開発しました。現在、Ubuntu パッケージを作成して、起動時にアプリケーションを自動的に起動しようとしています。
誰もログインしていなくても、アプリケーションは実行されている必要があります。つまり、/etc/init.d/ のスクリプトを介してデーモンが開始されます。
init.dスクリプトで、開始時にアプリケーションを実行し、停止時にkill-signalを送信するだけでしたが、それはアプリケーションがフォアグラウンドで実行され、init-scriptをブロックすることを意味します。
他の質問のようなフォークはほとんどうまくいくようですが、TCP サーバーを起動しようとすると「不明なエラー」が発生します。それでも、さまざまな Linux ディストリビューションの起動時にバックグラウンドでアプリケーションを実行する init-script を簡単に作成できる方法があるはずです。
誰かが私を正しい方向に向けることができますか?
Qt 4.5 で Ubuntu 9.10 を使用する
python - init.d スクリプトで Python を使用する場合の特別な考慮事項は?
'init.d'
実行中のスクリプトでPython を使用する場合、特別な考慮事項はありますinit
か? (つまり、Ubuntu の起動)
Ubuntuでのグーグル/テストを通じて私が理解していることから、'init.d'
スクリプトに提供される環境変数は不足しているため、使用"#!/usr/bin/env python"
できない可能性があります。
他に何か?
linux - Erlang: デーモン 'init.d' スクリプトの開始に失敗しました
Erlang デーモンを管理する Python スクリプトがあります。システムが初期化されると、シェルを介して使用するとすべてが正常に機能します。
「/etc/init.d」の下に同じスクリプトを含め、「/etc/rcX.d」に適切に設定されたシンボリック リンクを使用すると、Python スクリプトは引き続き機能しますが、Erlang デーモンは起動に失敗し、認識できる痕跡が残りません。 (例: crash_dump、dmesg など)
また、「erl -env HOME /root」を使用して環境変数「HOME」を設定しようとしましたが、それでもうまくいきません。
手がかりはありますか?
java - 再起動時にTomcatを起動する際の問題
Tomcat の起動に問題があります
tomcat / apache2 を実行するには、次の手順に従いました。
...しかし、Tomcat は再起動時に起動に失敗します。ログからのメッセージは次のとおりです。
[8005] は既に使用されていると表示されていますが、netstat -napa を実行すると、誰もそのポートを持っていないことがわかります。
実行して手動で開始できます
次に netstat を実行し、ポート 8080 を持つプロセスを強制終了して、
init.d tomcat スクリプトを削除し、システムを起動し、netstat -napa を実行して、誰かがポート 8080 または 8000 から 8009 を持っていて誰も持っていないかどうかを確認してみました。再起動時にこのポートに「telnet」すると、
..しかし、手動または init.d スクリプトを使用して tomcat を起動しようとすると、最初は失敗し、「アドレスは既に使用されています」というメッセージが表示されます。
何か案は?
ubuntu - Ubuntu で init.d スクリプトをシーケンスする方法
正しい順序で起動する必要があるいくつかのサーバーとその他のデーモンがあります。
スケルトン スクリプトから init.d スクリプトを作成し、それらをインストールして番号付き命名システムを使用して適切な順序で開始できますが、いくつかの問題が残っています。
1 つのサーバー (「serverA」) は、データベース接続を初期化し、ソケットをリッスンする必要があります。次に、別のサーバー (「serverB」) がそのソケットに接続する必要があり、前のプロセスがまだリッスンしていない場合、接続は失敗します。serverA がリッスンを開始するまで、serverA の init.d スクリプトが終了しないようにする方法はありますか? serverB init は、serverA init が終了するまで開始されません。
現時点では、serverB が成功するまで接続を再試行するだけでセットアップが機能しますが、そのアプローチは脆弱に見えます。シーケンスを強制する方法について、より決定論的に理解したいと思います。
python - Pythonアプリケーション用のinit.dスクリプトが必要
フィードアグリゲーターのように機能するPythonベースのアプリケーションがあり、start / stop / restartオプションを使用して実行を制御できるように、init.dスクリプトの一部である必要があります。また、init.dスクリプトをcronジョブとして設定する必要があります(ここに例があります)。
ここで1つのサンプルを見つけましたhttp://homepage.hispeed.ch/py430/python/daemon
(追記。スクリプトをPython自体で記述したくない)。