キーワード
-
CLOCK
_ BOOTTIME (1) -
CLOCK
_ BOOTTIME _ ALARM (1) -
CLOCK
_ MONOTONIC (1) -
CLOCK
_ MONOTONIC _ COARSE (1) -
CLOCK
_ MONOTONIC _ FAST (1) -
CLOCK
_ MONOTONIC _ PRECISE (1) -
CLOCK
_ MONOTONIC _ RAW (1) -
CLOCK
_ MONOTONIC _ RAW _ APPROX (1) -
CLOCK
_ PROCESS _ CPUTIME _ ID (1) -
CLOCK
_ PROF (1) -
CLOCK
_ REALTIME (1) -
CLOCK
_ REALTIME _ ALARM (1) -
CLOCK
_ REALTIME _ COARSE (1) -
CLOCK
_ REALTIME _ FAST (1) -
CLOCK
_ REALTIME _ PRECISE (1) -
CLOCK
_ SECOND (1) -
CLOCK
_ THREAD _ CPUTIME _ ID (1) -
CLOCK
_ UPTIME (1) -
CLOCK
_ UPTIME _ FAST (1) -
CLOCK
_ UPTIME _ PRECISE (1) -
CLOCK
_ UPTIME _ RAW (1) -
CLOCK
_ UPTIME _ RAW _ APPROX (1) -
CLOCK
_ VIRTUAL (1) -
PRIO
_ PGRP (1) -
PRIO
_ PROCESS (1) -
PRIO
_ USER (1) -
RLIMIT
_ AS (1) -
RLIMIT
_ CORE (1) -
RLIMIT
_ CPU (1) -
RLIMIT
_ DATA (1) -
RLIMIT
_ FSIZE (1) -
RLIMIT
_ MEMLOCK (1) -
RLIMIT
_ NOFILE (1) -
RLIMIT
_ NPROC (1) -
RLIMIT
_ RSS (1) -
RLIMIT
_ SBSIZE (1) -
RLIMIT
_ STACK (1) -
RLIM
_ INFINITY (1) -
RLIM
_ SAVED _ CUR (1) -
RLIM
_ SAVED _ MAX (1) - WNOHANG (1)
- WUNTRACED (1)
-
_ fork (1) - abort (2)
- argv0 (1)
-
clock
_ getres (1) -
clock
_ gettime (1) - daemon (1)
- detach (1)
- egid (1)
- egid= (1)
- euid (1)
- euid= (1)
- exec (1)
- exit (1)
- exit! (1)
- fork (2)
- getpgid (1)
- getpgrp (1)
- getpriority (1)
- getrlimit (1)
- getsid (1)
- gid (1)
- gid= (1)
- groups (1)
- groups= (1)
- initgroups (1)
- kill (1)
-
last
_ status (1) - maxgroups (1)
- maxgroups= (1)
- pid (1)
- ppid (1)
- setpgid (1)
- setpgrp (1)
- setpriority (1)
- setproctitle (1)
- setrlimit (2)
- setsid (1)
- spawn (1)
- times (1)
- uid (1)
- uid= (1)
- wait (1)
- wait2 (1)
- waitall (1)
- waitpid (1)
- waitpid2 (1)
- warmup (1)
検索結果
先頭5件
-
Process
. # argv0 -> String (10.0) -
現在実行中の Ruby スクリプトの名前を表す文字列です。[m:$0] を更新しても本メソッドの戻り値への影響はありません。
...本メソッドの戻り値への影響はありません。
本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スクリプトの名前を表す文字列を取得する手段として提供されました。
- **SEE** [m:Process?.setproctitle], [m:$0]... -
Process
. # clock _ getres(clock _ id , unit=:float _ second) -> Float | Integer (10.0) -
POSIX の clock_getres() 関数を使って、クロックの分解能を返します。
...p Process.clock_getres(Process::CLOCK_MONOTONIC) # => 1.0e-09
```
- **param** `clock_id` -- クロックの種類を指定します。指定できる値は
[m:Process?.clock_gettime] の clock_id と同じです。
- **param** `unit` -- 返値の型を指定します。[m:Process?......KS_PER_SEC の正確な値を得るために使えます。
```ruby title="例"
p Process.clock_getres(:TIMES_BASED_CLOCK_PROCESS_CPUTIME_ID, :hertz) # => 100.0
p Process.clock_getres(:TIMES_BASED_CLOCK_PROCESS_CPUTIME_ID, :float_second) # => 0.01
```
clock_id にシンボルを指定した......例えば以下は 1.0e-06(1マイクロ秒)を返しますが、実際の分解能はより粗いことがあります。
```ruby title="例"
p Process.clock_getres(:GETTIMEOFDAY_BASED_CLOCK_REALTIME) # => 1.0e-06
```
CLOCK_MONOTONIC や CLOCK_MONOTONIC_RAW については、Linux、macOS、BSD... -
Process
. # clock _ gettime(clock _ id , unit=:float _ second) -> Float | Integer (10.0) -
POSIX の clock_gettime() 関数の時間を返します。
..."
p Process.clock_gettime(Process::CLOCK_MONOTONIC) # => 896053.968060096
```
- **param** `clock_id` -- クロックの種類を以下の定数のいずれかで指定します。
サポートされている定数は OS やバージョンに依存します。
- **`[m:Process::CLOCK......2.0, OpenBSD 2.1, macOS 10.12
- **`[m:Process::CLOCK_MONOTONIC]`**:
SUSv3 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 3.4, macOS 10.12
- **`[m:Process::CLOCK_PROCESS_CPUTIME_ID]`**:
SUSv3 to 4, Linux 2.5.63, OpenBSD 5.4, macOS 10.12
- **`[m:Process::CLOCK_THREAD_CPUTIME_ID]`**:
SUSv3......SD 5.4, macOS 10.12
- **`[m:Process::CLOCK_VIRTUAL]`**:
FreeBSD 3.0, OpenBSD 2.1
- **`[m:Process::CLOCK_PROF]`**:
FreeBSD 3.0, OpenBSD 2.1
- **`[m:Process::CLOCK_REALTIME_FAST]`**:
FreeBSD 8.1
- **`[m:Process::CLOCK_REALTIME_PRECISE]`**:
FreeBSD 8.1
- **`[m:Process::CLOCK_REALTIME_COARSE]`**... -
Process
. # daemon(nochdir = nil , noclose = nil) -> 0 (10.0) -
プロセスから制御端末を切り離し、バックグラウンドにまわってデーモンとして動作させます。
プロセスから制御端末を切り離し、バックグラウンドにまわってデーモンとして動作させます。
カレントディレクトリを / に移動します。
ただし nochdir に真を指定したときにはこの動作は抑制され、カレントディレクトリは移動しません。
標準入力・標準出力・標準エラー出力を /dev/null にリダイレクトします。
ただし noclose に真を指定したときにはこの動作は抑制され、リダイレクトは行なわれません。
- **param** `nochdir` -- true を指定した場合、カレントディレクトリを移動しません。
- **param** `noclose` -- true ... -
Process
. # detach(pid) -> Thread (10.0) -
子プロセス pid の終了を監視するスレッドを生成して返します。 生成したスレッドは子プロセスが終了した後に終了ステータス ([c:Process::Status]) を返します。 指定した子プロセスが存在しなければ即座に nil で終了します。
...を監視するスレッドを生成して返します。
生成したスレッドは子プロセスが終了した後に終了ステータス ([c:Process::Status]) を返します。
指定した子プロセスが存在しなければ即座に nil で終了します。
- **param** `pid` -- 子ス......定します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
```ruby
pid = fork {
# child
sleep 3
}
p pid # => 7762
th = Process.detach(pid)
p th.value
# => #<Process::Status: pid 7762 exit 0>
```... -
Process
. # egid -> Integer (10.0) -
カレントプロセスの実効グループ ID を整数で返します。
カレントプロセスの実効グループ ID を整数で返します。
- **SEE** [man:getegid(2)] -
Process
. # egid=(gid) (10.0) -
カレントプロセスの実効グループ ID を gid に設定します。
...効グループ ID を整数で指定します。
- **raise** `Errno::EXXX` -- 権限がない場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [m:Process::GID?.eid=]... -
Process
. # euid -> Integer (10.0) -
カレントプロセスの実効ユーザ ID を整数で返します。
カレントプロセスの実効ユーザ ID を整数で返します。
- **SEE** [man:geteuid(2)] -
Process
. # euid=(uid) (10.0) -
カレントプロセスの実効ユーザ ID を uid に設定します。
...実効ユーザ ID を整数で指定します。
- **raise** `Errno::EXXX` -- 権限がない場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [m:Process::UID?.eid=]... -
Process
. # getpgid(pid) -> Integer (10.0) -
プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。
プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。
- **param** `pid` -- プロセス ID を整数で指定します。0 の時はカレントプロセス ID を指定したのと同じです。
- **raise** `Errno::EXXX` -- プロセスグループの取得に失敗した場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [man:getpgid(2)] -
Process
. # getpgrp -> Integer (10.0) -
現在のプロセスのプロセスグループ ID を整数で返します。
現在のプロセスのプロセスグループ ID を整数で返します。
- **raise** `Errno::EXXX` -- プロセスグループの取得に失敗した場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [man:getpgrp(2)] -
Process
. # getpriority(which , who) -> Integer (10.0) -
which に従いプロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを整数で返します。
...で返します。
- **param** `which` -- プライオリティの種類を次の定数で指定します。 [m:Process::PRIO_PROCESS],
[m:Process::PRIO_PGRP], [m:Process::PRIO_USER]。
- **param** `who` -- which の値にしたがってプロセス ID、プロセスグループ ID、... -
Process
. # getrlimit(resource) -> [Integer] (10.0) -
カレントプロセスでのリソースの制限値を、整数の配列として返します。 返り値は、現在の制限値 cur_limit と、制限値として設定可能な最大値 max_limit の配列 [cur_limit, max_limit] です。
...値 cur_limit と、制限値として設定可能な最大値 max_limit の配列 [cur_limit, max_limit] です。
それぞれの limit が [m:Process::RLIM_INFINITY] と等しい場合、リソースに制限がないことを意味します。
- **param** `resource` -- リソースの種類を......す。
- **`[m:Process::RLIMIT_CORE]`**:
core ファイルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_CPU]`**:
プロセスの CPU 時間 (秒) (SUSv3)
- **`[m:Process::RLIMIT_DATA]`**:
プロセスのデータ領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_FSIZE]`......ルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_NOFILE]`**:
プロセスがオープンできるファイルの数 (SUSv3)
- **`[m:Process::RLIMIT_STACK]`**:
プロセスのスタック領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_AS]`**:
プロセスの仮想メ... -
Process
. # getsid(pid = 0) -> Integer (10.0) -
引数 pid で指定されたプロセスのセッション ID を返します。
...ise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
```ruby
p Process.getsid() # => 27422
p Process.getsid(0) # => 27422
p Process.getsid(Process.pid()) # => 27422
```
- **SEE** [man:getsid(2)]... -
Process
. # gid -> Integer (10.0) -
カレントプロセスの実グループ ID を返します。
カレントプロセスの実グループ ID を返します。
- **SEE** [man:getgid(2)] -
Process
. # gid=(gid) (10.0) -
カレントプロセスの実グループ ID を gid に設定します。
...id` -- 実グループ ID を整数で指定します。
- **raise** `Errno::EXXX` -- 権限がない場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [c:Process::GID]... -
Process
. # groups -> [Integer] (10.0) -
補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。
...助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。
返される配列の最大要素数は [m:Process?.maxgroups] です。
このメソッドは [man:getgroups(2)] の単純なラッパーです。
このことは以下の特徴がプラットフ......か
ソート済みで重複のないグループ ID の配列の取得は以下のようにできます:
```ruby
Process.groups.uniq.sort
```
- **raise** `Errno::EXXX` -- [m:Process?.maxgroups] が実際に返される補助グループ ID の数よりも少ない値を設定していると発......生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
```ruby
p Process.groups # => [27, 6, 10, 11]
```
- **SEE** [man:getgroups(2)]... -
Process
. # groups=(gids) (10.0) -
補助グループを設定します。
...ループ ID は整数かグループ名を表す文字列です。
- **raise** `ArgumentError` -- 設定する補助グループ ID の数が [m:Process?.maxgroups] の数を越えている場合に発生します。
- **raise** `Errno::EXXX` -- 権限がない場合に発生します。
- **rai... -
Process
. # initgroups(user , group) -> [Integer] (10.0) -
user が属するグループのリストを更新し、group をそのリストに加えます。
user が属するグループのリストを更新し、group をそのリストに加えます。
このメソッドを呼ぶには root 権限が必要です。
- **param** `user` -- ユーザ名を表す文字列で指定します。
- **param** `group` -- ユーザグループ ID を整数で指定します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。 -
Process
. # kill(signal , pid , *rest) -> Integer (10.0) -
pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列または[c:Symbol])で指定します。 全てのシグナル送信に成功した場合、指定した pid の総数を返します。
pid で指定されたプロセスにシグナルを送ります。signal
はシグナル番号(整数)かその名前(文字列または[c:Symbol])で指定します。
全てのシグナル送信に成功した場合、指定した pid の総数を返します。
- **param** `signal` -- シグナルをシグナル番号(整数)かその名前(文字列または[c:Symbol])で指定します。負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、プロセスではなくプロセスグループにシグナルを送ります。
- **param** `pid` -- シグナルを送りたいプロセスのプロセス ID を整数で指定します。ただし、0... -
Process
. # maxgroups -> Integer (10.0) -
設定できる補助グループ ID の数を指定します。
...グループ ID の数を指定します。
実際に返される補助グループ ID の数よりも少ない値を設定していると、
[m:Process?.groups] で例外が発生します。
- **param** `num` -- 整数を指定します。
- **raise** `NotImplementedError` -- メソッドが現... -
Process
. # maxgroups=(num) (10.0) -
設定できる補助グループ ID の数を指定します。
...グループ ID の数を指定します。
実際に返される補助グループ ID の数よりも少ない値を設定していると、
[m:Process?.groups] で例外が発生します。
- **param** `num` -- 整数を指定します。
- **raise** `NotImplementedError` -- メソッドが現... -
Process
. # pid -> Integer (10.0) -
カレントプロセスのプロセス ID を返します。変数 [m:$$] の値と同じです。
カレントプロセスのプロセス ID を返します。変数 [m:$$]
の値と同じです。
- **SEE** [man:getpid(2)] -
Process
. # ppid -> Integer (10.0) -
親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終了した後は ppid は 1 (initの pid)になります。
親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終了した後は ppid は 1 (initの pid)になります。
- **SEE** [man:getppid(2)] -
Process
. # setpgid(pid , pgrp) -> 0 (10.0) -
プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。
プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。
- **param** `pid` -- プロセス ID を整数で指定します。pid が 0 の時はカレントプロセスの ID を指定したのと同じです。
プロセスグループの設定に成功した場合は 0 を返します。
- **param** `pgrp` -- プロセスグループ ID を整数で指定します。pgrp が 0 の時は pid を指定したのと同じです。
- **raise** `Errno::EXXX` -- プロセスグループの設定に失敗した場合に発生します。
- **r... -
Process
. # setpgrp -> 0 (10.0) -
カレントプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。 [m:Process?.setpgid](0, 0) と同じです。
...トプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。
[m:Process?.setpgid](0, 0) と同じです。
- **raise** `Errno::EXXX` -- プロセスグループの設定に失敗した場合に発生します。
- *......メソッドが現在のプラットフォームで実装されていない場合に発生します。
```ruby
fork do
p [Process.pid, Process.getpgrp]
p Process.setpgrp
p [Process.pid, Process.getpgrp]
end
Process.wait
# =>
[3427, 3426]
0
[3427, 3427]
```
- **SEE** [man:setpgrp(2)]... -
Process
. # setpriority(which , who , prio) -> 0 (10.0) -
プロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを設定します。プライオリティの設定に成功した場合は 0 を返します。
...ich` -- プライオリティを設定する対象の種類を以下の定数のいずれかで指定します。
- [m:Process::PRIO_PROCESS]
- [m:Process::PRIO_PGRP]
- [m:Process::PRIO_USER]
- **param** `who` -- which の値にしたがってプロセス ID、プロセスグループ ID、ユー......オリティを 10 に下げます。
すでに 10 よりもプライオリティが低く、
Errno::EACCES となった場合には無視して実行を続けます。
```ruby
begin
Process.setpriority(Process::PRIO_PROCESS, 0, 10)
rescue Errno::EACCES
end
```
- **SEE** [man:setpriority(2)]... -
Process
. # setproctitle(title) -> String (10.0) -
[man:ps(1)] が出力する現在実行中の Ruby スクリプトの名前を引数 title で指定した文字列に変更します。
...。
```ruby
Process.setproctitle('myapp: worker #%d' % worker_id)
```
本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スクリプトの名前を表す文字列を設定する手段として提供されました。
- **SEE** [m:Process?.argv0], [m:$0... -
Process
. # setrlimit(resource , cur _ limit , max _ limit) -> nil (10.0) -
カレントプロセスでのリソースの制限値を設定します。
...す。
- **`[m:Process::RLIMIT_CORE]`**:
core ファイルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_CPU]`**:
プロセスの CPU 時間 (秒) (SUSv3)
- **`[m:Process::RLIMIT_DATA]`**:
プロセスのデータ領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_FSIZE]`......ルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_NOFILE]`**:
プロセスがオープンできるファイルの数 (SUSv3)
- **`[m:Process::RLIMIT_STACK]`**:
プロセスのスタック領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_AS]`**:
プロセスの仮想メ......nBSD but 4.4BSD-Lite))
- **`[m:Process::RLIMIT_MEMLOCK]`**:
[man:mlock(2)] でロックできるトータルのサイズ (バイト) (4.4BSD, GNU/Linux)
- **`[m:Process::RLIMIT_NPROC]`**:
そのユーザのプロセスの最大数 (4.4BSD, GNU/Linux)
- **`[m:Process::RLIMIT_RSS]`**:
使用で... -
Process
. # setrlimit(resource , limit) -> nil (10.0) -
カレントプロセスでのリソースの制限値を設定します。
...す。
- **`[m:Process::RLIMIT_CORE]`**:
core ファイルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_CPU]`**:
プロセスの CPU 時間 (秒) (SUSv3)
- **`[m:Process::RLIMIT_DATA]`**:
プロセスのデータ領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_FSIZE]`......ルのサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_NOFILE]`**:
プロセスがオープンできるファイルの数 (SUSv3)
- **`[m:Process::RLIMIT_STACK]`**:
プロセスのスタック領域のサイズ (バイト) (SUSv3)
- **`[m:Process::RLIMIT_AS]`**:
プロセスの仮想メ......nBSD but 4.4BSD-Lite))
- **`[m:Process::RLIMIT_MEMLOCK]`**:
[man:mlock(2)] でロックできるトータルのサイズ (バイト) (4.4BSD, GNU/Linux)
- **`[m:Process::RLIMIT_NPROC]`**:
そのユーザのプロセスの最大数 (4.4BSD, GNU/Linux)
- **`[m:Process::RLIMIT_RSS]`**:
使用で... -
Process
. # setsid -> Integer (10.0) -
新しいセッションを作成して、tty を切り離します。デーモンを簡単に作ることができます。セッション ID を返します。
新しいセッションを作成して、tty を切り離します。デーモンを簡単に作ることができます。セッション ID を返します。
- **raise** `Errno::EXXX` -- セッションの作成に失敗した場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [man:setsid(2)] -
Process
. # times -> Process :: Tms (10.0) -
自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を [c:Process::Tms] オブジェクトで返します。 時間の単位は秒で、浮動小数点数で与えられます。
...を
[c:Process::Tms] オブジェクトで返します。
時間の単位は秒で、浮動小数点数で与えられます。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [c:Process::Tms]... -
Process
. # uid -> Integer (10.0) -
プロセスの実ユーザ ID を返します。
プロセスの実ユーザ ID を返します。
- **SEE** [man:getuid(2)] -
Process
. # uid=(id) (10.0) -
プロセスの実ユーザ ID を id に設定します。
...* `id` -- 実ユーザ ID を整数で指定します。
- **raise** `Errno::EXXX` -- 権限がない場合に発生します。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [c:Process::UID]... -
Process
. # wait(pid = -1 , flags = 0) -> Integer | nil (10.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す [c:Process::Status] オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
...終了ステータスを表す
[c:Process::Status] オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
[m:$?] に終了した子プロセスの [c:Process::Status] オブジェクトがセッ......グループ ID が同じ任意の子プロセスを待ちます。
- **param** `flags` -- Process モジュールの定数 [m:Process::WNOHANG](ノンブロッキングモード)と
[m:Process::WUNTRACED] の論理和を指定します。省略したときの値は 0 です。......も nil または 0 を指定する必要があります。
- **raise** `Errno::ECHILD` -- 子プロセスが存在しない場合に発生します。
```ruby
pid = fork { sleep 1 }
p Process.wait2 # => [70024, #<Process::Status: pid 70024 exit 0>]
```
- **SEE** [man:wait(2)], [man:waitpid(2)]... -
Process
. # wait2(pid = -1 , flags = 0) -> [Integer , Process :: Status] | nil (10.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す [c:Process::Status] オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
...終了ステータスを表す
[c:Process::Status] オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
[m:$?] に終了した子プロセスの [c:Process::Status] オブジェクトがセッ......グループ ID が同じ任意の子プロセスを待ちます。
- **param** `flags` -- Process モジュールの定数 [m:Process::WNOHANG](ノンブロッキングモード)と
[m:Process::WUNTRACED] の論理和を指定します。省略したときの値は 0 です。......も nil または 0 を指定する必要があります。
- **raise** `Errno::ECHILD` -- 子プロセスが存在しない場合に発生します。
```ruby
pid = fork { sleep 1 }
p Process.wait2 # => [70024, #<Process::Status: pid 70024 exit 0>]
```
- **SEE** [man:wait(2)], [man:waitpid(2)]... -
Process
. # waitall -> [[Integer , Process :: Status]] (10.0) -
全ての子プロセスが終了するのを待ちます。 終了した子プロセスの pid と終了ステータス ([c:Process::Status]) の配列の配列を返します。 子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。
...の pid と終了ステータス
([c:Process::Status]) の配列の配列を返します。
子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。
[m:$?] には最後に終了した子プロセスの [c:Process::Status] オブジェクトが設定さ......れます。
```ruby
2.times {|n|
Process.fork() { exit n }
}
p Process.waitall
# => :Status: pid=2766,exited(1)>], [2765, #<Process::Status: pid=2765,exited(1)>
```... -
Process
. # waitpid(pid = -1 , flags = 0) -> Integer | nil (10.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す [c:Process::Status] オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
...終了ステータスを表す
[c:Process::Status] オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
[m:$?] に終了した子プロセスの [c:Process::Status] オブジェクトがセッ......グループ ID が同じ任意の子プロセスを待ちます。
- **param** `flags` -- Process モジュールの定数 [m:Process::WNOHANG](ノンブロッキングモード)と
[m:Process::WUNTRACED] の論理和を指定します。省略したときの値は 0 です。......も nil または 0 を指定する必要があります。
- **raise** `Errno::ECHILD` -- 子プロセスが存在しない場合に発生します。
```ruby
pid = fork { sleep 1 }
p Process.wait2 # => [70024, #<Process::Status: pid 70024 exit 0>]
```
- **SEE** [man:wait(2)], [man:waitpid(2)]... -
Process
. # waitpid2(pid = -1 , flags = 0) -> [Integer , Process :: Status] | nil (10.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す [c:Process::Status] オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
...終了ステータスを表す
[c:Process::Status] オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
[m:$?] に終了した子プロセスの [c:Process::Status] オブジェクトがセッ......グループ ID が同じ任意の子プロセスを待ちます。
- **param** `flags` -- Process モジュールの定数 [m:Process::WNOHANG](ノンブロッキングモード)と
[m:Process::WUNTRACED] の論理和を指定します。省略したときの値は 0 です。......も nil または 0 を指定する必要があります。
- **raise** `Errno::ECHILD` -- 子プロセスが存在しない場合に発生します。
```ruby
pid = fork { sleep 1 }
p Process.wait2 # => [70024, #<Process::Status: pid 70024 exit 0>]
```
- **SEE** [man:wait(2)], [man:waitpid(2)]... -
Process
. # warmup -> true (10.0) -
[c:RubyVM]にアプリケーションの起動が終了したこと及び、アプリケーションの最適化に適したタイミングであることを通知します。
[c:RubyVM]にアプリケーションの起動が終了したこと及び、アプリケーションの最適化に適したタイミングであることを通知します。
アプリケーションがプリフォークモデルでデプロイされる場合は、最初のフォークが行なわれる前に元のプロセスで呼び出しされることが推奨されます。
本メソッドが行う最適化は実装依存であり、将来的に予告なく変更される可能性があります。
CRubyではメジャーGCを実行し以下のことをします:
1. ヒープを圧縮します
2. GCされなかった全ての新世代オブジェクトを古い世代に昇格します
3. 全ての文字列のcoderange([m:String#valid_encodi... -
Process
. _ fork -> Integer (10.0) -
fork のための内部 API です。このメソッドを直接呼び出してはいけません。
...fork のための内部 API です。このメソッドを直接呼び出してはいけません。
[m:Kernel?.fork]、[m:Process.fork]、[m:IO.popen] に "-" を渡した場合に、その内部から呼び出されます。
通常のプログラムのためではなく、アプリケーショ......ork の前後に独自の処理を挟めます。
[m:Process?.daemon] も fork(2) を用いて実装されることがありますが、そちらはこのメソッドを経由しません。fork を捕捉する目的によっては、
[m:Process?.daemon] も併せて上書きする必要があり......セスです。子は #{pid} です"
end
pid
end
end
Process.singleton_class.prepend(ForkMonitor)
pid = fork { exit }
Process.waitpid(pid)
# => 子プロセスです
# 親プロセスです。子は 70024 です
```
- **SEE** [m:Process.fork], [m:Kernel?.fork], [m:Process?.daemon]... -
Process
. abort -> () (10.0) -
関数 [m:Kernel?.abort] と同じです。
関数 [m:Kernel?.abort] と同じです。
- **param** `message` -- 終了時のメッセージを文字列で指定します。 -
Process
. abort(message) -> () (10.0) -
関数 [m:Kernel?.abort] と同じです。
関数 [m:Kernel?.abort] と同じです。
- **param** `message` -- 終了時のメッセージを文字列で指定します。 -
Process
. exec(command , *args) -> () (10.0) -
カレントプロセスを与えられた外部コマンドで置き換えます。
カレントプロセスを与えられた外部コマンドで置き換えます。 -
Process
. exit!(status = false) -> () (10.0) -
関数 [m:Kernel?.exit!] と同じです。
関数 [m:Kernel?.exit!] と同じです。
- **param** `status` -- 終了ステータスを boolean か整数で指定します。true の場合は成功を、false は失敗を意味します。
- **SEE** [man:_exit(2)] -
Process
. exit(status = true) -> () (10.0) -
プロセスを終了します。関数 [m:Kernel?.exit] と同じです。
プロセスを終了します。関数 [m:Kernel?.exit] と同じです。
- **param** `status` -- 終了ステータスを boolean か整数で指定します。true の場合は成功を、false は失敗を意味します。
- **SEE** [man:exit(3)] -
Process
. fork -> Integer | nil (10.0) -
子プロセスを生成します。関数 [m:Kernel?.fork] と同じです。
子プロセスを生成します。関数 [m:Kernel?.fork] と同じです。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [man:fork(2)] -
Process
. fork { . . . } -> Integer | nil (10.0) -
子プロセスを生成します。関数 [m:Kernel?.fork] と同じです。
子プロセスを生成します。関数 [m:Kernel?.fork] と同じです。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。
- **SEE** [man:fork(2)] -
Process
. last _ status -> Process :: Status | nil (10.0) -
カレントスレッドで最後に終了した子プロセスのステータスを返します。
...ruby
Process.wait Process.spawn("ruby", "-e", "exit 13")
p Process.last_status # => #<Process::Status: pid 4825 exit 13>
```
カレントスレッドで子プロセスを実行したことがない場合は nil を返します。
```ruby
p Process.last_status # => nil
```
- **SEE** [c:Process::St... -
Process
. spawn(cmd , *arg) -> Integer (10.0) -
関数 [m:Kernel?.spawn] と同じです。
関数 [m:Kernel?.spawn] と同じです。
- **param** `cmd` -- [m:Kernel?.spawn] と同じです。
- **param** `arg` -- [m:Kernel?.spawn] と同じです。
- **raise** `NotImplementedError` -- メソッドが現在のプラットフォームで実装されていない場合に発生します。 -
Process
:: CLOCK _ BOOTTIME -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ BOOTTIME _ ALARM -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC -> Integer | Symbol (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては :MACH_ABSOLUTE_TIME_BASED_CLOCK_MONOTONIC です。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC _ COARSE -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC _ FAST -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC _ PRECISE -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC _ RAW -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ MONOTONIC _ RAW _ APPROX -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ PROCESS _ CPUTIME _ ID -> Integer | Symbol (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては :GETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_ID です。
システムによっては定義されていません。... -
Process
:: CLOCK _ PROF -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ REALTIME -> Integer | Symbol (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては :GETTIMEOFDAY_BASED_CLOCK_REALTIME です。
システムによっては定義されていません。... -
Process
:: CLOCK _ REALTIME _ ALARM -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ REALTIME _ COARSE -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ REALTIME _ FAST -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ REALTIME _ PRECISE -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ SECOND -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ THREAD _ CPUTIME _ ID -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ UPTIME -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ UPTIME _ FAST -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ UPTIME _ PRECISE -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ UPTIME _ RAW -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ UPTIME _ RAW _ APPROX -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: CLOCK _ VIRTUAL -> Integer (10.0) -
[m:Process?.clock_gettime] で使われます。
...[m:Process?.clock_gettime] で使われます。
システムによっては定義されていません。... -
Process
:: PRIO _ PGRP -> Integer (10.0) -
対象とするプライオリティがプロセスグループプライオリティであることを表す定数です。
...対象とするプライオリティがプロセスグループプライオリティであることを表す定数です。
[m:Process?.getpriority] または [m:Process?.setpriority] で使われます。... -
Process
:: PRIO _ PROCESS -> Integer (10.0) -
対象とするプライオリティがプロセスプライオリティであることを表す定数です。
...対象とするプライオリティがプロセスプライオリティであることを表す定数です。
[m:Process?.getpriority] または [m:Process?.setpriority] で使われます。... -
Process
:: PRIO _ USER -> Integer (10.0) -
対象とするプライオリティがユーザプライオリティであることを表す定数です。
...対象とするプライオリティがユーザプライオリティであることを表す定数です。
[m:Process?.getpriority] または [m:Process?.setpriority] で使われます。... -
Process
:: RLIMIT _ AS -> Integer (10.0) -
リソースの種類がプロセスの仮想メモリサイズであることを示す定数です。
...リソースの種類がプロセスの仮想メモリサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ CORE -> Integer (10.0) -
リソースの種類が core ファイルのサイズであることを示す定数です。
...リソースの種類が core ファイルのサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ CPU -> Integer (10.0) -
リソースの種類がプロセスの CPU 時間であることを示す定数です。
...リソースの種類がプロセスの CPU 時間であることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ DATA -> Integer (10.0) -
リソースの種類がプロセスのデータ領域のサイズであることを示す定数です。
...リソースの種類がプロセスのデータ領域のサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ FSIZE -> Integer (10.0) -
リソースの種類がプロセスが生成するファイルのサイズであることを示す定数です。
...リソースの種類がプロセスが生成するファイルのサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ MEMLOCK -> Integer (10.0) -
リソースの種類が [man:mlock(2)] でロックできるトータルのサイズであることを示す定数です。
...リソースの種類が [man:mlock(2)] でロックできるトータルのサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ NOFILE -> Integer (10.0) -
リソースの種類がプロセスがオープンできるファイルの数であることを示す定数です。
...リソースの種類がプロセスがオープンできるファイルの数であることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ NPROC -> Integer (10.0) -
リソースの種類がユーザのプロセスの最大数であることを示す定数です。
...リソースの種類がユーザのプロセスの最大数であることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ RSS -> Integer (10.0) -
リソースの種類が使用できる実メモリの最大サイズであることを示す定数です。
...リソースの種類が使用できる実メモリの最大サイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ SBSIZE -> Integer (10.0) -
リソースの種類がソケットバッファのサイズであることを示す定数です。
...リソースの種類がソケットバッファのサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIMIT _ STACK -> Integer (10.0) -
リソースの種類がプロセスのスタック領域のサイズであることを示す定数です。
...リソースの種類がプロセスのスタック領域のサイズであることを示す定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。
システムによっては定義されていません。... -
Process
:: RLIM _ INFINITY -> Integer (10.0) -
リソースに制限がないことを意味する定数です。
...リソースに制限がないことを意味する定数です。
[m:Process?.getrlimit]、[m:Process?.setrlimit] で使われます。... -
Process
:: RLIM _ SAVED _ CUR -> Integer (10.0) -
[m:Process?.getrlimit], [m:Process?.setrlimit] で使われます。詳しくは [man:setrlimit(2)] を参照して下さい。
...[m:Process?.getrlimit], [m:Process?.setrlimit] で使われます。詳しくは [man:setrlimit(2)] を参照して下さい。... -
Process
:: RLIM _ SAVED _ MAX -> Integer (10.0) -
[m:Process?.getrlimit], [m:Process?.setrlimit] で使われます。詳しくは [man:setrlimit(2)] を参照して下さい。
...[m:Process?.getrlimit], [m:Process?.setrlimit] で使われます。詳しくは [man:setrlimit(2)] を参照して下さい。... -
Process
:: WNOHANG -> Integer (10.0) -
[m:Process?.waitpid] の第二引数に指定するフラグです。 終了した子プロセスがない時でも waitpid がブロックしません。
...[m:Process?.waitpid] の第二引数に指定するフラグです。
終了した子プロセスがない時でも waitpid がブロックしません。... -
Process
:: WUNTRACED -> Integer (10.0) -
[m:Process?.waitpid] の第二引数に指定するフラグです。 このフラグが指定された場合、waitpid は停止しているだけで終了していない子プロセスのプロセス ID も返すようになります。 trace されている子プロセスの ID は返しません。
...[m:Process?.waitpid] の第二引数に指定するフラグです。
このフラグが指定された場合、waitpid は停止しているだけで終了していない子プロセスのプロセス ID も返すようになります。
trace されている子プロセスの ID は返しませ......ん。
```ruby
include Process
pid = fork{ Process.kill('SIGSTOP', Process.pid) }
p pid # => 4336
p waitpid2(pid, WUNTRACED) # => [4336, #<Process::Status: pid=4336,stopped(SIGSTOP=19)>]
```
- **SEE** [man:waitpid(2)]...
