Ruby processes: Difference between revisions

From wikinotes
 
Line 1: Line 1:
= Subprocesses =
= Subprocesses =
Process functions create/operate on a PID (instead of an object representing the process, like python).
Process functions create/operate on a PID (instead of an object representing the process, like python).
<source lang="ruby">
`ls -la | grep foo`
puts "exit code is 0" if $?.success
</source>


<source lang="ruby">
<source lang="ruby">

Revision as of 01:38, 13 August 2022

Subprocesses

Process functions create/operate on a PID (instead of an object representing the process, like python).

`ls -la | grep foo`
puts "exit code is 0" if $?.success
pid = Process.spawn(['ls', '-la'])
puts pid  # 123456
Process.wait pid

Fork

Fork allows you to run ruby code in a separate process.

pid = Process.fork do
  puts "child, pid #{Process.pid} sleeping..."
  sleep 5
  puts "child exiting"
end

Process.wait pid

https://naturaily.com/blog/multiprocessing-in-ruby