Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. RAILS_ROOT = '/var/rails/keyword-observer/'
  2. rails_env = ENV['RAILS_ENV'] || 'production'
  3. worker_processes 4
  4. preload_app true
  5. timeout 30
  6. listen RAILS_ROOT + 'tmp/sockets/unicorn.sock', :backlog => 64
  7.  
  8. before_fork do |server, worker|
  9. pid_old = RAILS_ROOT + 'tmp/pids/unicorn.pid.oldbin'
  10. if File.exists?(pid_old) && server.pid != pid_old
  11. begin
  12. Process.kill("QUIT", File.read(pid_old).to_i)
  13. rescue Errno::ENOENT, Errno::ESRCH
  14. # someone else did our job for us
  15. end
  16. end
  17. end
  18.  
  19. after_fork do |server, worker|
  20. ActiveRecord::Base.establish_connection
  21. begin
  22. uid, gid = Process.euid, Process.egid
  23. user, group = 'unicorn', 'unicorn'
  24. target_uid = Etc.getpwnam(user).uid
  25. target_gid = Etc.getgrnam(group).gid
  26. worker.tmp.chown(target_uid, target_gid)
  27. if uid != target_uid || gid != target_gid
  28. Process.initgroups(user, target_gid)
  29. Process::GID.change_privilege(target_gid)
  30. Process::UID.change_privilege(target_uid)
  31. end
  32. rescue => e
  33. if RAILS_ENV == 'development'
  34. STDERR.puts "Cannot change Unicorn's worker UID/GID in development environment."
  35. else
  36. raise e
  37. end
  38. end
  39. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement