Ruby processes: Difference between revisions
From wikinotes
(→Fork) |
|||
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