我运行的是 Ubuntu 10.04 VPS,它托管了 2 个 Thin 进程,在 Nginx 后面运行 Ruby On Rails。我以普通用户身份通过 /etc/init.d 启动脚本控制 Thin 进程。在我的 Thin 配置文件中,我指定:
user: www-data
group: www-data
在我的 Thin 日志中,当我启动服务器时,我看到
>> Changing process privilege to www-data:www-data
好兆头。问题是当我运行ps -ef
Thin 进程时,它们以我登录的用户身份运行——我/etc/init.d/thin start
以哪个用户身份运行。
/etc/init.d/thin start
当我以登录服务器的用户身份运行时,如何以 www-data:www-data 的形式启动 Thin 进程?
答案1
您可以使用 sudo 以任何用户:组的身份运行命令,并使用以下选项:
sudo -u www-data -g www-data /etc/init.d/thin start
-u 设置 www-data 用户,-g 设置 www-data 组
答案2
您是否尝试过做一个:
sudo -c www-data /etc/init.d/thin start
但是如果您的 Thin 服务器正在监听端口 80,那么您将需要 root 权限。
答案3
如果您是普通用户,则无法将进程所有权切换给其他用户。您需要以 root 身份运行 /etc/init.d/thin 脚本才能执行此操作。
因此,您可以做类似的事情sudo /etc/init.d/thin start
。