D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Process
/
Filename :
cdesc-Process.ri
back
Copy
U:RDoc::NormalModule[iI"Process:ET@0o:RDoc::Markup::Document:@parts[o;;[�o:RDoc::Markup::Paragraph;[I"P\Module +Process+ represents a process in the underlying operating system. ;TI"SIts methods support management of the current process and its child processes.;To:RDoc::Markup::BlankLine S:RDoc::Markup::Heading: leveli: textI"\Process Creation;T@o; ;[ I"ZEach of the following methods executes a given command in a new process or subshell, ;TI"=or multiple commands in new processes and/or subshells. ;TI"KThe choice of process or subshell depends on the form of the command; ;TI"asee {Argument command_line or exe_path}[rdoc-ref:Process@Argument+command_line+or+exe_path].;T@o:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o; ;[I"8Process.spawn, Kernel#spawn: Executes the command; ;TI"8returns the new pid without waiting for completion.;To;;0;[o; ;[I"IProcess.exec: Replaces the current process by executing the command.;T@o; ;[I"In addition:;T@o;;;;[o;;0;[o; ;[I"Q\Method Kernel#system executes a given command-line (string) in a subshell; ;TI"'returns +true+, +false+, or +nil+.;To;;0;[o; ;[I"L\Method Kernel#` executes a given command-line (string) in a subshell; ;TI" returns its $stdout string.;To;;0;[o; ;[I"5\Module Open3 supports creating child processes ;TI"?with access to their $stdin, $stdout, and $stderr streams.;T@S;;i; I"Execution Environment;T@o; ;[I"DOptional leading argument +env+ is a hash of name/value pairs, ;TI"Fwhere each name is a string and each value is a string or +nil+; ;TI"=each name/value pair is added to ENV in the new process.;T@o:RDoc::Markup::Verbatim;[I"?Process.spawn( 'ruby -e "p ENV[\"Foo\"]"') ;TI"?Process.spawn({'Foo' => '0'}, 'ruby -e "p ENV[\"Foo\"]"') ;T:@format0o; ;[I"Output:;T@o;;[I" "0" ;T;0o; ;[ I"VThe effect is usually similar to that of calling ENV#update with argument +env+, ;TI"Awhere each named environment variable is created or updated ;TI""(if the value is non-+nil+), ;TI"(or deleted (if the value is +nil+).;T@o; ;[I"CHowever, some modifications to the calling process may remain ;TI"if the new process fails. ;TI"8For example, hard resource limits are not restored.;T@S;;i; I"*Argument +command_line+ or +exe_path+;T@o; ;[I":The required string argument is one of the following:;T@o;;;;[o;;0;[o; ;[I"Q+command_line+ if it begins with a shell reserved word or special built-in, ;TI"3or if it contains one or more meta characters.;To;;0;[o; ;[I"+exe_path+ otherwise.;T@S;;i ; I"Argument +command_line+;T@o; ;[I"P\String argument +command_line+ is a command line to be passed to a shell; ;TI"Nit must begin with a shell reserved word, begin with a special built-in, ;TI" or contain meta characters:;T@o;;[ I"Wsystem('if true; then echo "Foo"; fi') # => true # Shell reserved word. ;TI"Lsystem('exit') # => true # Built-in. ;TI"[system('date > /tmp/date.tmp') # => true # Contains meta character. ;TI"@system('date > /nop/date.tmp') # => false ;TI"Lsystem('date > /nop/date.tmp', exception: true) # Raises RuntimeError. ;T;0o; ;[I"MThe command line may also contain arguments and options for the command:;T@o;;[I"$system('echo "Foo"') # => true ;T;0o; ;[I"Output:;T@o;;[I" Foo ;T;0o; ;[I"YSee {Execution Shell}[rdoc-ref:Process@Execution+Shell] for details about the shell.;T@S;;i ; I"Argument +exe_path+;T@o; ;[I"1Argument +exe_path+ is one of the following:;T@o;;;;[o;;0;[o; ;[I"8The string path to an executable file to be called:;T@o; ;[I" Example:;T@o;;[I"Lsystem('/usr/bin/date') # => true # Path to date on Unix-style system. ;TI"Dsystem('foo') # => nil # Command execlution failed. ;T;0o; ;[I"Output:;T@o;;[I"%Thu Aug 31 10:06:48 AM CDT 2023 ;T;0o; ;[ I"GA path or command name containing spaces without arguments cannot ;TI"Fbe distinguished from +command_line+ above, so you must quote or ;TI">escape the entire command name using a shell in platform ;TI"3dependent manner, or use the array form below.;T@o; ;[ I"FIf +exe_path+ does not contain any path separator, an executable ;TI"Afile is searched from directories specified with the +PATH+ ;TI"Eenvironment variable. What the word "executable" means here is ;TI"depending on platforms.;T@o; ;[ I"FEven if the file considered "executable", its content may not be ;TI"Fin proper executable format. In that case, Ruby tries to run it ;TI"Eby using <tt>/bin/sh</tt> on a Unix-like system, like system(3) ;TI" does.;T@o;;[I"=File.write('shell_command', 'echo $SHELL', perm: 0o755) ;TI"Gsystem('./shell_command') # prints "/bin/sh" or something. ;T;0o;;0;[ o; ;[I"<A 2-element array containing the path to an executable ;TI"Dand the string to be used as the name of the executing process:;T@o; ;[I" Example:;T@o;;[I">pid = spawn(['sleep', 'Hello!'], '1') # 2-element array. ;TI""p `ps -p #{pid} -o command=` ;T;0o; ;[I"Output:;T@o;;[I""Hello! 1\n" ;T;0S;;i; I"Arguments +args+;T@o; ;[I"IIf +command_line+ does not contain shell meta characters except for ;TI"?spaces and tabs, or +exe_path+ is given, Ruby invokes the ;TI"<executable directly. This form does not use the shell:;T@o;;[ I"8spawn("doesnt_exist") # Raises Errno::ENOENT ;TI"8spawn("doesnt_exist", "\n") # Raises Errno::ENOENT ;TI" ;TI",spawn("doesnt_exist\n") # => false ;TI"'# sh: 1: doesnot_exist: not found ;T;0o; ;[I"HThe error message is from a shell and would vary depending on your ;TI"system.;T@o; ;[I"AIf one or more +args+ is given after +exe_path+, each is an ;TI"7argument or option to be passed to the executable:;T@o; ;[I" Example:;T@o;;[I"?system('echo', '<', 'C*', '|', '$SHELL', '>') # => true ;T;0o; ;[I"Output:;T@o;;[I"< C* | $SHELL > ;T;0o; ;[I"HHowever, there are exceptions on Windows. See {Execution Shell on ;TI";Windows}[rdoc-ref:Process@Execution+Shell+on+Windows].;T@o; ;[I"FIf you want to invoke a path containing spaces with no arguments ;TI"Fwithout shell, you will need to use a 2-element array +exe_path+.;T@o; ;[I" Example:;T@o;;[I"Kpath = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' ;TI"Zspawn(path) # Raises Errno::ENOENT; No such file or directory - /Applications/Google ;TI"spawn([path] * 2) ;T;0S;;i; I"Execution Options;T@o; ;[I"IOptional trailing argument +options+ is a hash of execution options.;T@S;;i ; I"!Working Directory (+:chdir+);T@o; ;[I"JBy default, the working directory for the new process is the same as ;TI"!that of the current process:;T@o;;[I"Dir.chdir('/var') ;TI"-Process.spawn('ruby -e "puts Dir.pwd"') ;T;0o; ;[I"Output:;T@o;;[I" /var ;T;0o; ;[I"JUse option +:chdir+ to set the working directory for the new process:;T@o;;[I">Process.spawn('ruby -e "puts Dir.pwd"', {chdir: '/tmp'}) ;T;0o; ;[I"Output:;T@o;;[I" /tmp ;T;0o; ;[I"AThe working directory of the current process is not changed:;T@o;;[I"Dir.pwd # => "/var" ;T;0S;;i ; I")\File Redirection (\File Descriptor);T@o; ;[I"CUse execution options for file redirection in the new process.;T@o; ;[I"HThe key for such an option may be an integer file descriptor (fd), ;TI"specifying a source, ;TI"5or an array of fds, specifying multiple sources.;T@o; ;[I".An integer source fd may be specified as:;T@o;;;;[o;;0;[o; ;[I"(_n_: Specifies file descriptor _n_.;T@o; ;[I"/There are these shorthand symbols for fds:;T@o;;;;[o;;0;[o; ;[I"0+:in+: Specifies file descriptor 0 (STDIN).;To;;0;[o; ;[I"2+:out+: Specifies file descriptor 1 (STDOUT).;To;;0;[o; ;[I"2+:err+: Specifies file descriptor 2 (STDERR).;T@o; ;[I"-The value given with a source is one of:;T@o;;;;[o;;0;[o; ;[I" _n_: ;TI"/Redirects to fd _n_ in the parent process.;To;;0;[o; ;[ I"+filepath+: ;TI"ZRedirects from or to the file at +filepath+ via <tt>open(filepath, mode, 0644)</tt>, ;TI"4where +mode+ is <tt>'r'</tt> for source +:in+, ;TI"1or <tt>'w'</tt> for source +:out+ or +:err+.;To;;0;[o; ;[I"<tt>[filepath]</tt>: ;TI"RRedirects from the file at +filepath+ via <tt>open(filepath, 'r', 0644)</tt>.;To;;0;[o; ;[I" <tt>[filepath, mode]</tt>: ;TI"YRedirects from or to the file at +filepath+ via <tt>open(filepath, mode, 0644)</tt>.;To;;0;[o; ;[I"&<tt>[filepath, mode, perm]</tt>: ;TI"YRedirects from or to the file at +filepath+ via <tt>open(filepath, mode, perm)</tt>.;To;;0;[o; ;[I"<tt>[:child, fd]</tt>: ;TI"&Redirects to the redirected +fd+.;To;;0;[o; ;[I";+:close+: Closes the file descriptor in child process.;T@o; ;[I"4See {Access Modes}[rdoc-ref:File@Access+Modes] ;TI"<and {File Permissions}[rdoc-ref:File@File+Permissions].;T@S;;i ; I"/Environment Variables (+:unsetenv_others+);T@o; ;[ I"@By default, the new process inherits environment variables ;TI"from the parent process; ;TI"Cuse execution option key +:unsetenv_others+ with value +true+ ;TI"7to clear environment variables in the new process.;T@o; ;[I"TAny changes specified by execution option +env+ are made after the new process ;TI"3inherits or clears its environment variables; ;TI"Isee {Execution Environment}[rdoc-ref:Process@Execution+Environment].;T@S;;i ; I"%\File-Creation Access (+:umask+);T@o; ;[I"CUse execution option +:umask+ to set the file-creation access ;TI"for the new process; ;TI"4see {Access Modes}[rdoc-ref:File@Access+Modes]:;T@o;;[I"=command = 'ruby -e "puts sprintf(\"0%o\", File.umask)"' ;TI" options = {:umask => 0644} ;TI"%Process.spawn(command, options) ;T;0o; ;[I"Output:;T@o;;[I" 0644 ;T;0S;;i ; I"2\Process Groups (+:pgroup+ and +:new_pgroup+);T@o; ;[I"5By default, the new process belongs to the same ;TI"B{process group}[https://en.wikipedia.org/wiki/Process_group] ;TI"as the parent process.;T@o; ;[I"+To specify a different process group. ;TI"Euse execution option +:pgroup+ with one of the following values:;T@o;;;;[o;;0;[o; ;[I"<+true+: Create a new process group for the new process.;To;;0;[o; ;[I"9_pgid_: Create the new process in the process group ;TI"whose id is _pgid_.;T@o; ;[I"KOn Windows only, use execution option +:new_pgroup+ with value +true+ ;TI"7to create a new process group for the new process.;T@S;;i ; I"Resource Limits;T@o; ;[I"2Use execution options to set resource limits.;T@o; ;[ I"8The keys for these options are symbols of the form ;TI",<tt>:rlimit_<i>resource_name</i></tt>, ;TI"Fwhere _resource_name_ is the downcased form of one of the string ;TI";resource names described at method Process.setrlimit. ;TI"QFor example, key +:rlimit_cpu+ corresponds to resource limit <tt>'CPU'</tt>.;T@o; ;[I")The value for such as key is one of:;T@o;;;;[o;;0;[o; ;[I"@An integer, specifying both the current and maximum limits.;To;;0;[o; ;[I"NA 2-element array of integers, specifying the current and maximum limits.;T@S;;i ; I"!\File Descriptor Inheritance;T@o; ;[I"SBy default, the new process inherits file descriptors from the parent process.;T@o; ;[I"TUse execution option <tt>:close_others => true</tt> to modify that inheritance ;TI"Sby closing non-standard fds (3 and greater) that are not otherwise redirected.;T@S;;i; I"Execution Shell;T@o; ;[I"COn a Unix-like system, the shell invoked is <tt>/bin/sh</tt>; ;TI"?the entire string +command_line+ is passed as an argument ;TI"jto {shell option -c}[https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/sh.html].;T@o; ;[I"CThe shell performs normal shell expansion on the command line:;T@o; ;[I" Example:;T@o;;[I")system('echo $SHELL: C*') # => true ;T;0o; ;[I"Output:;T@o;;[I"3/bin/bash: CONTRIBUTING.md COPYING COPYING.ja ;T;0S;;i ; I"Execution Shell on Windows;T@o; ;[I"IOn Windows, the shell invoked is determined by environment variable ;TI"H+RUBYSHELL+, if defined, or +COMSPEC+ otherwise; the entire string ;TI"G+command_line+ is passed as an argument to <tt>-c</tt> option for ;TI"7+RUBYSHELL+, as well as <tt>/bin/sh</tt>, and {/c ;TI"coption}[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmd] ;TI"Ifor +COMSPEC+. The shell is invoked automatically in the following ;TI"cases:;T@o;;;;[o;;0;[o; ;[I"<The command is a built-in of +cmd.exe+, such as +echo+.;To;;0;[o; ;[I"GThe executable file is a batch file; its name ends with +.bat+ or ;TI"+.cmd+.;T@o; ;[ I"HNote that the command will still be invoked as +command_line+ form ;TI"Eeven when called in +exe_path+ form, because +cmd.exe+ does not ;TI"Iaccept a script name like <tt>/bin/sh</tt> does but only works with ;TI"<tt>/c</tt> option.;T@o; ;[I"@The standard shell +cmd.exe+ performs environment variable ;TI"8expansion but does not have globbing functionality:;T@o; ;[I" Example:;T@o;;[I"-system("echo %COMSPEC%: C*")' # => true ;T;0o; ;[I"Output:;T@o;;[I"%C:\WINDOWS\system32\cmd.exe: C* ;T;0S;;i; I"What's Here;T@S;;i; I"Current-Process Getters;T@o;;;;[o;;0;[o; ;[I":::argv0: Returns the process name as a frozen string.;To;;0;[o; ;[I",::egid: Returns the effective group ID.;To;;0;[o; ;[I"+::euid: Returns the effective user ID.;To;;0;[o; ;[I",::getpgrp: Return the process group ID.;To;;0;[o; ;[I"-::getrlimit: Returns the resource limit.;To;;0;[o; ;[I"(::gid: Returns the (real) group ID.;To;;0;[o; ;[I"#::pid: Returns the process ID.;To;;0;[o; ;[I":::ppid: Returns the process ID of the parent process.;To;;0;[o; ;[I"'::uid: Returns the (real) user ID.;T@S;;i; I"Current-Process Setters;T@o;;;;[ o;;0;[o; ;[I"*::egid=: Sets the effective group ID.;To;;0;[o; ;[I")::euid=: Sets the effective user ID.;To;;0;[o; ;[I"&::gid=: Sets the (real) group ID.;To;;0;[o; ;[I",::setproctitle: Sets the process title.;To;;0;[o; ;[I"A::setpgrp: Sets the process group ID of the process to zero.;To;;0;[o; ;[I"(::setrlimit: Sets a resource limit.;To;;0;[o; ;[I"R::setsid: Establishes the process as a new session and process group leader, ;TI"with no controlling tty.;To;;0;[o; ;[I"::uid=: Sets the user ID.;T@S;;i; I"Current-Process Execution;T@o;;;;[o;;0;[o; ;[I"1::abort: Immediately terminates the process.;To;;0;[o; ;[I"B::daemon: Detaches the process from its controlling terminal ;TI"Aand continues running it in the background as system daemon.;To;;0;[o; ;[I"F::exec: Replaces the process by running a given external command.;To;;0;[o; ;[I"K::exit: Initiates process termination by raising exception SystemExit ;TI"(which may be caught).;To;;0;[o; ;[I",::exit!: Immediately exits the process.;To;;0;[o; ;[I"H::warmup: Notifies the Ruby virtual machine that the boot sequence ;TI"'for the application is completed, ;TI":and that the VM may begin optimizing the application.;T@S;;i; I"Child Processes;T@o;;;;[o;;0;[o; ;[I"@::detach: Guards against a child process becoming a zombie.;To;;0;[o; ;[I"%::fork: Creates a child process.;To;;0;[o; ;[I"/::kill: Sends a given signal to processes.;To;;0;[o; ;[I"&::spawn: Creates a child process.;To;;0;[o; ;[I"R::wait, ::waitpid: Waits for a child process to exit; returns its process ID.;To;;0;[o; ;[I"_::wait2, ::waitpid2: Waits for a child process to exit; returns its process ID and status.;To;;0;[o; ;[I"7::waitall: Waits for all child processes to exit; ;TI",returns their process IDs and statuses.;T@S;;i; I"\Process Groups;T@o;;;;[o;;0;[o; ;[I";::getpgid: Returns the process group ID for a process.;To;;0;[o; ;[I"4::getpriority: Returns the scheduling priority ;TI"+for a process, process group, or user.;To;;0;[o; ;[I"4::getsid: Returns the session ID for a process.;To;;0;[o; ;[I"1::groups: Returns an array of the group IDs ;TI"<in the supplemental group access list for this process.;To;;0;[o; ;[I"8::groups=: Sets the supplemental group access list ;TI"%to the given array of group IDs.;To;;0;[o; ;[I"B::initgroups: Initializes the supplemental group access list.;To;;0;[o; ;[I"J::last_status: Returns the status of the last executed child process ;TI"in the current thread.;To;;0;[o; ;[I"B::maxgroups: Returns the maximum number of group IDs allowed ;TI"+in the supplemental group access list.;To;;0;[o; ;[I"@::maxgroups=: Sets the maximum number of group IDs allowed ;TI"+in the supplemental group access list.;To;;0;[o; ;[I"7::setpgid: Sets the process group ID of a process.;To;;0;[o; ;[I"1::setpriority: Sets the scheduling priority ;TI"+for a process, process group, or user.;T@S;;i; I"Timing;T@o;;;;[o;;0;[o; ;[I">::clock_getres: Returns the resolution of a system clock.;To;;0;[o; ;[I";::clock_gettime: Returns the time from a system clock.;To;;0;[o; ;[I"=::times: Returns a Process::Tms object containing times ;TI"5for the current process and its child processes.;T: @fileI"process.c;T:0@omit_headings_from_table_of_contents_below0;0;0[ [6U:RDoc::Constant[i I"WNOHANG;TI"Process::WNOHANG;T:public0o;;[o; ;[I"see Process.wait;T@;@!;0@!@cRDoc::NormalModule0U;[i I"WUNTRACED;TI"Process::WUNTRACED;T;0o;;[o; ;[I"see Process.wait;T@;@!;0@!@@-0U;[i I"PRIO_PROCESS;TI"Process::PRIO_PROCESS;T;0o;;[o; ;[I"see Process.setpriority;T@;@!;0@!@@-0U;[i I"PRIO_PGRP;TI"Process::PRIO_PGRP;T;0o;;[o; ;[I"see Process.setpriority;T@;@!;0@!@@-0U;[i I"PRIO_USER;TI"Process::PRIO_USER;T;0o;;[o; ;[I"see Process.setpriority;T@;@!;0@!@@-0U;[i I"RLIM_SAVED_MAX;TI"Process::RLIM_SAVED_MAX;T;0o;;[o; ;[I"see Process.setrlimit;T@;@!;0@!@@-0U;[i I"RLIM_INFINITY;TI"Process::RLIM_INFINITY;T;0o;;[o; ;[I"see Process.setrlimit;T@;@!;0@!@@-0U;[i I"RLIM_SAVED_CUR;TI"Process::RLIM_SAVED_CUR;T;0o;;[o; ;[I"see Process.setrlimit;T@;@!;0@!@@-0U;[i I"RLIMIT_AS;TI"Process::RLIMIT_AS;T;0o;;[o; ;[I"KMaximum size of the process's virtual memory (address space) in bytes.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_CORE;TI"Process::RLIMIT_CORE;T;0o;;[o; ;[I"#Maximum size of the core file.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_CPU;TI"Process::RLIMIT_CPU;T;0o;;[o; ;[I"CPU time limit in seconds.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_DATA;TI"Process::RLIMIT_DATA;T;0o;;[o; ;[I"0Maximum size of the process's data segment.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_FSIZE;TI"Process::RLIMIT_FSIZE;T;0o;;[o; ;[I"7Maximum size of files that the process may create.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_MEMLOCK;TI"Process::RLIMIT_MEMLOCK;T;0o;;[o; ;[I"CMaximum number of bytes of memory that may be locked into RAM.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_MSGQUEUE;TI"Process::RLIMIT_MSGQUEUE;T;0o;;[o; ;[I"FSpecifies the limit on the number of bytes that can be allocated ;TI"Jfor POSIX message queues for the real user ID of the calling process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_NICE;TI"Process::RLIMIT_NICE;T;0o;;[o; ;[I"ISpecifies a ceiling to which the process's nice value can be raised.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_NOFILE;TI"Process::RLIMIT_NOFILE;T;0o;;[o; ;[I"DSpecifies a value one greater than the maximum file descriptor ;TI"/number that can be opened by this process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_NPROC;TI"Process::RLIMIT_NPROC;T;0o;;[o; ;[I"AThe maximum number of processes that can be created for the ;TI")real user ID of the calling process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_NPTS;TI"Process::RLIMIT_NPTS;T;0o;;[o; ;[I"HThe maximum number of pseudo-terminals that can be created for the ;TI")real user ID of the calling process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_RSS;TI"Process::RLIMIT_RSS;T;0o;;[o; ;[I"BSpecifies the limit (in pages) of the process's resident set.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_RTPRIO;TI"Process::RLIMIT_RTPRIO;T;0o;;[o; ;[I"TSpecifies a ceiling on the real-time priority that may be set for this process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_RTTIME;TI"Process::RLIMIT_RTTIME;T;0o;;[o; ;[I"JSpecifies limit on CPU time this process scheduled under a real-time ;TI"#scheduling policy can consume.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_SBSIZE;TI"Process::RLIMIT_SBSIZE;T;0o;;[o; ;[I"'Maximum size of the socket buffer.;T;@!;0@!@@-0U;[i I"RLIMIT_SIGPENDING;TI"Process::RLIMIT_SIGPENDING;T;0o;;[o; ;[I"GSpecifies a limit on the number of signals that may be queued for ;TI"-the real user ID of the calling process.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"RLIMIT_STACK;TI"Process::RLIMIT_STACK;T;0o;;[o; ;[I")Maximum size of the stack, in bytes.;T@o; ;[I"4see the system getrlimit(2) manual for details.;T;@!;0@!@@-0U;[i I"CLOCK_REALTIME;TI"Process::CLOCK_REALTIME;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC;TI"Process::CLOCK_MONOTONIC;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_PROCESS_CPUTIME_ID;TI"&Process::CLOCK_PROCESS_CPUTIME_ID;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_THREAD_CPUTIME_ID;TI"%Process::CLOCK_THREAD_CPUTIME_ID;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_VIRTUAL;TI"Process::CLOCK_VIRTUAL;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_PROF;TI"Process::CLOCK_PROF;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_REALTIME_FAST;TI"!Process::CLOCK_REALTIME_FAST;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_REALTIME_PRECISE;TI"$Process::CLOCK_REALTIME_PRECISE;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_REALTIME_COARSE;TI"#Process::CLOCK_REALTIME_COARSE;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_REALTIME_ALARM;TI""Process::CLOCK_REALTIME_ALARM;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC_FAST;TI""Process::CLOCK_MONOTONIC_FAST;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC_PRECISE;TI"%Process::CLOCK_MONOTONIC_PRECISE;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC_RAW;TI"!Process::CLOCK_MONOTONIC_RAW;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC_RAW_APPROX;TI"(Process::CLOCK_MONOTONIC_RAW_APPROX;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_MONOTONIC_COARSE;TI"$Process::CLOCK_MONOTONIC_COARSE;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_BOOTTIME;TI"Process::CLOCK_BOOTTIME;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_BOOTTIME_ALARM;TI""Process::CLOCK_BOOTTIME_ALARM;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_UPTIME;TI"Process::CLOCK_UPTIME;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_UPTIME_FAST;TI"Process::CLOCK_UPTIME_FAST;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_UPTIME_PRECISE;TI""Process::CLOCK_UPTIME_PRECISE;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_UPTIME_RAW;TI"Process::CLOCK_UPTIME_RAW;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_UPTIME_RAW_APPROX;TI"%Process::CLOCK_UPTIME_RAW_APPROX;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_SECOND;TI"Process::CLOCK_SECOND;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0U;[i I"CLOCK_TAI;TI"Process::CLOCK_TAI;T;0o;;[o; ;[I"see Process.clock_gettime;T@;@!;0@!@@-0[ [[I" class;T[[;[4[I" _fork;TI"process.c;T[I" abort;T@[I" argv0;TI"ruby.c;T[I"clock_getres;T@[I"clock_gettime;T@[I"daemon;T@[I"detach;T@[I" egid;T@[I" egid=;T@[I" euid;T@[I" euid=;T@[I" exec;T@[I" exit;T@[I" exit!;T@[I" fork;T@[I"getpgid;T@[I"getpgrp;T@[I"getpriority;T@[I"getrlimit;T@[I"getsid;T@[I"gid;T@[I" gid=;T@[I"groups;T@[I"groups=;T@[I"initgroups;T@[I" kill;T@[I"last_status;T@[I"maxgroups;T@[I"maxgroups=;T@[I"pid;T@[I" ppid;T@[I"setpgid;T@[I"setpgrp;T@[I"setpriority;T@[I"setproctitle;T@"[I"setrlimit;T@[I"setsid;T@[I" spawn;T@[I" times;T@[I"uid;T@[I" uid=;T@[I" wait;T@[I" wait2;T@[I"waitall;T@[I"waitpid;T@[I" waitpid2;T@[I"warmup;T@[:protected[ [:private[ [I" instance;T[[;[ [;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;0;0[@!I"ruby.c;T@�cRDoc::TopLevel