在unix(Ubuntu)如何运行一个服务,或作为某个用户的应用程序?

我被告知我应该运行我的Rails应用程序作为用户www-data ,我该怎么做? 我怎样才能像某些用户一样运行Nginx和其他服务? 这个最好的做法是什么?

许多程序,特别是那些打算作为守护进程运行的程序,都会有一个命令行标志,供用户运行。 对于期望使用“特权”端口的应用程序来说,这对于1024以下的应用程序来说尤为重要,因为只有root可以在那里打开侦听套接字。 大多数这样的应用程序将以root身份启动,读取configuration,打开套接字,然后setuid()给受限制的用户。

其他程序 – 主要是那些不需要低编号端口的程序 – 只能通过启动脚本中的“su”调用运行。

sudo命令也是这样; 结帐其手册页。

也许,suexec(切换用户exec),是你在找什么。

Ubuntu的文档http://manpages.ubuntu.com/manpages/lucid/man8/suexec.8.html

apache文档http://httpd.apache.org/docs/current/suexec.html