【发布时间】:2011-08-12 16:31:34
【问题描述】:
我正在尝试使用 daemons gem 运行 Ruby 守护程序。
它将以用户“joe”的身份启动,但一旦被妖魔化就需要更改为“www-data”,以便它可以访问将要处理的文件。
我可以看到守护进程对 Application 类有 change_privilege 方法,但我不知道如何在这段代码周围使用它:
require 'daemons'
Daemons.run(
File.join(File.dirname(__FILE__), 'worker.rb'),
{
:backtrace => true,
:log_output => true,
:dir_mode => :script,
:log_dir => '/tmp',
:monitor => true
}
)
【问题讨论】:
-
仅供参考。由用户“joe”启动的进程将无法将用户 ID 更改为“www-data”。它需要由 root 用户启动。
-
你是对的,乔只是一个例子:)
-
我通常处理上述问题的方式是使用操作系统工具在启动脚本中设置它。或在上帝之类的东西中设置有效ID。