| Module | Process |
| In: |
vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb
|
# File vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb, line 3
3: def self.daemon(nochdir = nil, noclose = nil)
4: exit if fork # Parent exits, child continues.
5: Process.setsid # Become session leader.
6: exit if fork # Zap session leader. See [1].
7:
8: unless nochdir
9: Dir.chdir "/" # Release old working directory.
10: end
11:
12: File.umask 0000 # Ensure sensible umask. Adjust as needed.
13:
14: unless noclose
15: STDIN.reopen "/dev/null" # Free file descriptors and
16: STDOUT.reopen "/dev/null", "a" # point them somewhere sensible.
17: STDERR.reopen '/dev/null', 'a'
18: end
19:
20: trap("TERM") { exit }
21:
22: return 0
23: end