Soumettre la recherche
Mettre en ligne
シグナル
•
Télécharger en tant que ODP, PDF
•
2 j'aime
•
3,159 vues
B
bsdhack
Suivre
jus共催 第10回初心者向けなのかと百条委員会化する午前のシェル勉強会/第28回基準値を超えるシェル芸勉強会の資料です
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
FreeBSDのブートプロセス
FreeBSDのブートプロセス
bsdhack
シェルスクリプトを極める
シェルスクリプトを極める
bsdhack
FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜
FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜
Koichiro Iwao
Hostsの活用
Hostsの活用
Yoshitaka KATO
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
Ruby on FreeBSD 2020
Ruby on FreeBSD 2020
Koichiro Iwao
ターミナル上でのSwift運用
ターミナル上でのSwift運用
HarutakaMatsumoto
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
HarutakaMatsumoto
Recommandé
FreeBSDのブートプロセス
FreeBSDのブートプロセス
bsdhack
シェルスクリプトを極める
シェルスクリプトを極める
bsdhack
FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜
FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜
Koichiro Iwao
Hostsの活用
Hostsの活用
Yoshitaka KATO
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
Ruby on FreeBSD 2020
Ruby on FreeBSD 2020
Koichiro Iwao
ターミナル上でのSwift運用
ターミナル上でのSwift運用
HarutakaMatsumoto
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
HarutakaMatsumoto
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
Fuminobu Takeyama
Slide
Slide
Kazki Matsumoto
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
ほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linux
gion_XY
Preseeding Debian
Preseeding Debian
Emma Haruka Iwao
俺のGentooがこんなに可愛いわけがない
俺のGentooがこんなに可愛いわけがない
Takuto Matsuu
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
Fuminobu Takeyama
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
th0x0472
Gentoo Linuxの紹介
Gentoo Linuxの紹介
University of Tsukuba Linux User Group
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
Kenichiro MATOHARA
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
Programming under capability mode
Programming under capability mode
Yuichiro Naito
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
Takuto Matsuu
Baremetal rust for_windows
Baremetal rust for_windows
明 高橋
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
shimadah
fdコマンドを使おう
fdコマンドを使おう
Hideaki Miyake
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Shigeru Kobayashi
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
t-inuo
Contenu connexe
Tendances
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
Fuminobu Takeyama
Slide
Slide
Kazki Matsumoto
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
ほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linux
gion_XY
Preseeding Debian
Preseeding Debian
Emma Haruka Iwao
俺のGentooがこんなに可愛いわけがない
俺のGentooがこんなに可愛いわけがない
Takuto Matsuu
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
Fuminobu Takeyama
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
th0x0472
Gentoo Linuxの紹介
Gentoo Linuxの紹介
University of Tsukuba Linux User Group
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
Kenichiro MATOHARA
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
Programming under capability mode
Programming under capability mode
Yuichiro Naito
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
Takuto Matsuu
Baremetal rust for_windows
Baremetal rust for_windows
明 高橋
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
shimadah
fdコマンドを使おう
fdコマンドを使おう
Hideaki Miyake
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
Tendances
(20)
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
Slide
Slide
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
ほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linux
Preseeding Debian
Preseeding Debian
俺のGentooがこんなに可愛いわけがない
俺のGentooがこんなに可愛いわけがない
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
Gentoo Linuxの紹介
Gentoo Linuxの紹介
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Programming under capability mode
Programming under capability mode
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
Baremetal rust for_windows
Baremetal rust for_windows
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
fdコマンドを使おう
fdコマンドを使おう
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
S2s websrv201011-presen
S2s websrv201011-presen
Similaire à シグナル
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Shigeru Kobayashi
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
t-inuo
The current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printing
Naruhiko Ogasawara
SDNアプローチによるBGP経路監視の提案
SDNアプローチによるBGP経路監視の提案
Toshiki Tsuboi
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきた
Huy Do
rzmq
rzmq
Masayuki Isobe
Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!
m ishizaki
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Shohei Hido
Pyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Yoshikazu Kawashima
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
ssuser551c92
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Takuji Kawata
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
DMM.com
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
Masaki NIWA
LL Onsen 2008 OpenPrinting
LL Onsen 2008 OpenPrinting
Naruhiko Ogasawara
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
Kazuho Oku
Fuchsia概略その1
Fuchsia概略その1
l_b__
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Takaaki Hoyo
Similaire à シグナル
(20)
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
エンターブライズIoTLT vol.17 LT6 センサを大量に取得するデモ
The current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printing
SDNアプローチによるBGP経路監視の提案
SDNアプローチによるBGP経路監視の提案
私とOSSの25年
私とOSSの25年
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきた
rzmq
rzmq
Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Pyconjp2014_implementations
Pyconjp2014_implementations
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
LL Onsen 2008 OpenPrinting
LL Onsen 2008 OpenPrinting
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
Fuchsia概略その1
Fuchsia概略その1
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
シグナル
1.
シグナルシグナル USP 友の会 今泉光之 @bsdhack https://bsdhack.org
2.
シグナル 2 講師講師 ● 今泉光之 UNIX/Linux環境でのプログラミングを中心に、ネットワークや インフラなども含め20年以上に渡る経験だけは積んできました。 当初はC言語でコンパイラ、Xサーバ、ドライバ、TCP/IPによる 通信などシステム系のプログラミングが主でしたが、最近はPerl やPHPなどのWeb向けのLLも使っています。
3.
シグナル 3 シグナルとはシグナルとは ● プロセス間通信の手段 ●
非同期のイベントを通知する仕組み ● 宛先プロセスの処理に割り込む
4.
シグナル 4 シグナルは割り込みシグナルは割り込み
5.
シグナル 5 シグナルと割り込みシグナルと割り込み ● シグナルはソフトウェア由来 ●
割り込みはハードウェア由来 ※ 個人の感想であり、出典・一次ソースを示すものでは ありません。
6.
シグナル 6 シグナルの種類(抜粋)シグナルの種類(抜粋) ● ハングアップ
(SIGHUP) 元々は電話が切れた事を通知した。シグナル番号 1 。 ● 割り込み (SIGINT) 端末から割り込みキー (Ctrl+C) で発生。シグナル番号 2 。 ● 終了 (SIGQUIT) 端末から終了キー (Ctrl+) で発生。シグナル番号3。 ● 強制終了 (SIGTERM) プロセスを強制的に終了させる。シグナル番号15.
7.
シグナル 7 シグナル受信時の挙動シグナル受信時の挙動 ● 無視する 何もなかったかの様に粛々と動作を続ける ●
デフォルトの動作を実行する システム( OS )によって定義された動作を実施する ● 捕捉する 独自の処理を定義して実施する
8.
シグナル 8 シグナルハンドラシグナルハンドラ ● シグナルを受信した時に実行される処理 ●
登録されていない場合は OS によってデフォルトの挙動 – SIGHUP プロセスの終了。 – SIGINT プロセスの終了。 – SIGQUIT プロセスの終了とコアダンプ。 – SIGTERM プロセスの終了。
9.
シグナル 9 シグナルハンドラの登録シグナルハンドラの登録 ● シェルでは trap(1)
を利用する ● 基本的にはシェルの組み込みコマンド ● シグナルの種類と受け取った時の処理を指定する trap [ 処理 ] シグナル [ … シグナル ] ● シグナルはシンボルでも数字でも指定可能
10.
シグナル 10 シグナルハンドラの複数指定シグナルハンドラの複数指定 ● シグナルの種類毎に複数の trap(1)
を指定できる trap 処理 1 HUP もしくは trap 処理 1 1 trap 処理 2 INT もしくは trap 処理 2 2 trap 処理 3 QUIT もしくは trap 処理 3 3 trap 処理 15 TERM もしくは trap 処理 15 15
11.
シグナル 11 疑似シグナル疑似シグナル EXITEXIT ●
終了時のハンドラ。シグナル番号は 0 実際のシグナルではないが trap(1) に指定できる ● プロセスが終了するときに実行させる処理を登録 trap 終了処理 EXIT もしくは trap 終了処理 0 ● シグナルを受信した場合も同様 trap 終了処理 0 1 2 3 15
12.
シグナル 12 traptrap のアクションのアクション ● trap(1)
のアクションは省略可 – アクションを省略するとデフォルトの挙動に戻す trap 1 2 3 ● trap(1) のアクションに空文字列を指定すると無視 trap '' 1 2 3 ● trap(1) のアクションは終了しない 明示的に exit(1) して終了させる必要がある
13.
シグナル 13 bashbash のの
traptrap ● シェルの組み込みなので機能に差がある – bash の trap(1) はハンドラの一覧表示ができる trap -p
14.
シグナル 14 シグナルの送信シグナルの送信 ● kill(1) コマンド kill
[-s シグナル名 ][- 番号 ] PID[ …PID]
15.
シグナル 15 シグナルの種類(再訪)シグナルの種類(再訪) ● 代表的なシグナル –
SIGILL不正命令 不正な命令の実行 4 – SIGBUS バスエラー 不正メモリ操作 7 – SIGFPE 浮動小数点例外 ゼロ除算など 8 – SIGSEGV セグメンテーション違反 不正メモリアクセス 11 – SIGPIPE パイプ書き込みエラー 相手がいないパイプ 13 – SIGUSR1 ユーザー定義シグナル 10 – SIGUSR2 ユーザー定義シグナル 11
16.
シグナル 16 シグナルの用途シグナルの用途 ● SIGHUP 設定の読み込みやログの再オープン処理など ●
SIGCHLD 無視する事で子プロセスのゾンビ化を防止 ● SIGUSR1 GNU dd(1) では進捗状況を表示
17.
シグナル 17 特権的なシグナル特権的なシグナル ● 殆どのシグナルはプロセスが挙動を決められる –
無視、特別な処理、デフォルトの挙動 ● 例外的に挙動を決められないシグナル – SIGKILL プロセスの強制終了。シグナル番号は 9 。 kill(1) コマンドで発生 – SIGSTOP 実行中断。シグナル番号は 19 。 端末から中断キー (Ctrl+Z) で発生
18.
シグナル 18 緊急時に便利なシグナル緊急時に便利なシグナル ● 緊急時には
Ctrl+Z が有効 trap '' 1 2 3 15 : rm -rf * ● kill -9 するためには pid を調べる必要がある(時間がかかる) ● 端末から Ctrl+Z すれば取りあえず停止する
19.
シグナル 19 余談(1)余談(1) ● 初期のシグナル
(SYSV シグナル ) は牧歌的 – システムコールの実行中のシグナル 停止してエラーリターンする – ハンドラ実行中のハンドラは 実行されない様にする(デフォルトに戻る)
20.
シグナル 20 余談(2)余談(2) ● 中期のシグナル
(BSD シグナル ) は少し頑張った – システムコールの実行中のシグナル ハンドラを実行した後はシステムコールに戻る – ハンドラ実行中のハンドラは 保留(ブロック)されてハンドラ終了後に届く
21.
シグナル 21 余談(3)余談(3) ● 後期のシグナルは論理的(当社比) –
システムコールの名前を変える signal(2) は sigaction(2) に – ハンドラ実行中のハンドラは シグナルマスクの概念を作って選択可能とした
Télécharger maintenant