0

などのコンソールを介してアプリケーションを実行する場合、そのアプリケーション$application startと通信するにはどうすればよいですか? たとえば$application load --/home/application/files/file.txt --warn=0 --notice=0、アプリケーションの実行中のインスタンスがこれに反応することができます...

アプリケーション側でコンソールを聞き続けたくありません。コンソールを閉じて、もう一度開いても、プログラムを操作できるようにしたいです。

これを行う理由は、バックグラウンドで実行されるさまざまな操作をロードするマスター プログラムが必要だからです。オペレーターを追加したり、操作を削除したりしたいです。

私自身、PHP の経験があり、Apache がそのような動作をすることを知っています。

編集:皆さんからのいくつかのコメントの後、私は IPC を使用する必要があると結論付けました。これは前に聞いたことがありますが、実際にどのように機能するかはわかりませんでした。いくつかのグーグルとあなたが私に示したウィキペディアのリンクの後、私はIPCを処理する方法がたくさんあると結論付けました. データのパッケージをメイン プロセスに送信したいのですが、私の場合はどれが最適でしょうか? 私の個人的なお気に入りの ATM はメッセージ キューですが、それは同じプロセス内でしか機能しないようです。

4

3 に答える 3

1

アプリケーションをバックグラウンドで実行し、アプリケーションが開始されたコンソールを閉じることができるようにするには、nohupユーティリティを使用できます。次に、アプリの最初のインスタンスが (「よく知られている」) IPC リソース (メッセージ キュー、FIFO など) を作成する必要があります。これにより、以降のインスタンスはそれを介して最初のインスタンスと通信します。

アプリを完全に機能するデーモンに変えるのは比較的簡単です。

于 2013-08-04T17:20:01.313 に答える
1

@LokiAstari が、C++ の経験があまりないかもしれないと指摘したので、次を読むことをお勧めします: How to parse command line parameters

次に、一時ファイルを使用/tmpしてメイン プログラムと通信します。メイン プログラムは無限ループを実行し、一時ファイルが変更されるのを待ちます。

于 2013-08-04T17:13:21.140 に答える