2


1

バックグラウンドで起動するアプリケーションを作成する方法を知りたいのですが。 私は現在、小さなプロジェクトとしてCでWebサーバーを作成しています。どちらも古いCとLinux Socket Programmingを学ぶためです。 しかし、私の現在の関心事は次のとおりです。

  • 現在のプロセス番号を取得する方法

これを取得したいのは、プロセスを開始するときに、サービスを開始したユーザーのプロセス番号を表示したいからです。

  • 2つ目の問題は、アプリケーションをデーモンとして起動してバックグラウンドで実行する方法です。

私がこれをどのようにしたらよいかについてのどんな参考文献、チュートリアルおよび/またはビデオでも評価されます!

'' '' '

多分私は少し不明瞭でした。 C内からプロセスIDを取得したい それで、私は私のアプリケーションのためにシェルスクリプトを作成する必要があるか、または私はCからこれをすることができますか?

2 Answer


5


  1. 実行中のプロセスの識別子を取得するには、 `getpid()`関数を使います。

  2. デーモンを作成する。 バックグラウンドで実行されている分離プロセス、 http://www-theorie.physik.unizh.ch/~dpotter/howto/daemonize [これらの指示]に従ってください。


1


  • nixでは、http://www.computerhope.com/unix/ups.htm[ps]でプロセスIDを取得するか、プロセス名がわかっている場合は、

ps aux grep processname

デーモンとしてプログラムを実行するには、http://en.wikipedia.org/wiki/Nohup[nohup]を使用してください。