タグ

ブックマーク / qiita.com/0xfffffff7 (4)

  • Linuxでプロセスのデーモン化 - Qiita

    プロセスと周辺の概念 TTY (仮想端末) |-セッション |-プロセスグループ |-プロセス 「TTY = セッション 1>N プロセスグループ 1>N プロセス」 プロセスの中の一つがセッションリーダーで、その中の複数がプロセスグループリーダー。 セッション TTYと結びついたログインセッションのこと。一つ以上のプロセスグループの集まりであり、セッションリーダーとなるプロセスが制御端末とやりとりをして端末切断時に子プロセスを全て終了させる役割を持つ。自身が属するセッション内でしかプロセスグループは生成できない。 プロセスグループ プロセスの集まりで、シグナルを他のプロセスへ送信することができる。メンバーはプロセスグループリーダーのプロセスIDをグループIDとして持つ。プロセスグループのリーダーになるにはsetpgid()かsetsid()を呼び出す。 fork() この関数を呼ぶとプロ

    Linuxでプロセスのデーモン化 - Qiita
  • HTTP2最速実装をmain()関数だけで簡単に説明する(非SSL編) - Qiita

    概要 C++のmain関数に全てベタ書きで書いてHTTP2の通信を説明します。 最速実装なので最低限の通信に限定しています。 MacWindows両方でビルドできます。 接続先は「nghttp2.org」を使わせていただきます。 変更したい人はhostの部分を書き換えてください。(その場合はHEADERS_FRAMEも書き換える必要があります) 今回は平文で流れる通信です。 SSL版はこちらです。 ただし、main関数だけといいつつも、3つだけ冗長な処理を関数化してます。数行程度の定型処理です。 参考にしたのはこちらの資料です。 https://speakerdeck.com/syucream/2-zui-su-shi-zhuang-v3 依存 windowsの場合は下記の依存ライブラリを追加します。 Ws2_32.lib 目的 HTTP2の最初のハードルを超えるための勉強。 main関

    HTTP2最速実装をmain()関数だけで簡単に説明する(非SSL編) - Qiita
  • TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita

    昔Unix系システムではselect()でIO処理を非同期にして、ファイルディスクリプタの状態に変化があった場合のみ処理を行うことができた。これはメモリやサーバーリソースが極端に少なかった時代に有効な手法だった(らしい)。90年代後半、00年代前半にはマルチスレッドが主流になり、サーバーサイドではAcceptして受け入れたクライアントのソケットをスレッドに渡して送受信を行うことでコネクションの多重化を行った。(もちろん目的に応じて非同期も活躍していた) 00年代後半からC10K問題が騒がれ、node.jsやnginxが登場した。大量のスレッドを生成してリソースやメモリを消費する方法よりも、再びソケットをノンブロッキングにしてディスクリプタの状態を監視する非同期処理が注目されるようになる。そして最近ではjavascript promise、RX、Reactive Extensionなどクライ

    TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita
  • Linux開発環境の基礎知識 - Qiita

    自分が長期間Linuxを使わずに、ある時に急に使うことになったりするのでコピペで使える知識をまとめたものです。自分用のメモですのでエントリとして書くのを少しためらいましたが、同じ境遇の人がコピペで使えれば便利かなと思い記事にしました。 MacOSLinuxではなくBSD系ですが、パッケージコマンドの中に少し紹介してます。 CentOS7などに対応してないのでどなたか編集リクエスト送って頂けると助かります。 個人の設定ファイル ホームディレクトリに設定ファイルがある。 場所 意味

    Linux開発環境の基礎知識 - Qiita
  • 1