Apache 普西翁坠机事件

Apache 普西翁坠机事件,apache,passenger,Apache,Passenger,我正在使用passenger和apache来运行我的ruby应用程序。我注意到乘客偶尔会崩溃(apache仍在工作),我需要手动重新启动apache使其重新工作 查看日志让我觉得,当apache更改日志文件(归档当前日志文件并创建新日志文件)时,就会发生这种情况。这是apache错误日志文件上的tail-F的样子: tail: ‘/var/log/apache2/error.log’ has become inaccessible: No such file or directory

我正在使用passenger和apache来运行我的ruby应用程序。我注意到乘客偶尔会崩溃(apache仍在工作),我需要手动重新启动apache使其重新工作

查看日志让我觉得,当apache更改日志文件(归档当前日志文件并创建新日志文件)时,就会发生这种情况。这是apache错误日志文件上的
tail-F
的样子:

tail: ‘/var/log/apache2/error.log’ has become inaccessible: No such file or directory                                           
tail: ‘/var/log/apache2/error.log’ has appeared;  following end of new file                                                     
[ 2013-10-06 05:05:27.2678 10498/7f3f0cf82740 agents/Watchdog/Main.cpp:459 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/usr/bin/ruby1.9.1', 'default_user' => 'nobody', 'log_level' => '0', 'max_instances_per_app' => '0', 'max_pool_size' => '6', 'passenger_root' => '/var/lib/gems/1.9.1/gems/passenger-4.0.14', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_pid' => '18659', 'web_server_type' => 'apache', 'web_server_worker_gid' => '1000', 'web_server_worker_uid' => '1001' }                                                                
[Sun Oct 06 05:05:27 2013] [error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because it encountered the following error during startup: Tried to reuse existing server instance directory /tmp/passenger.1.0.18659, but it has wrong permissions                                                                             
[Sun Oct 06 05:05:27 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 Phusion_Passenger/4.0.14 configured -- resuming normal operations
  • 该消息提到
    /tmp
    中的文件具有错误的权限,为什么它们是错误的?它们应该是什么?如何使它们正确
  • 最后一条信息“恢复正常运行”似乎也是错误的,因为乘客已经停机。是虫子吗?这是什么意思
  • 我应该做些什么来防止这种情况发生

啊,我看到您的版本是4.0.14。请升级至最新版本,即4.0.20。大约4.0.17之前的版本没有正确支持带有setgid标志的/tmp目录。

在我的情况下,重新启动apache可以解决此问题

$ /etc/init.d/httpd stop
$ /etc/init.d/httpd start

这可能是一个bug,但需要更多的调查。我在这里提出了这个问题:不,对不起,我不能重现这个问题。你能正常启动Apache,然后告诉我
ls-l-d/tmp/passenger.*
的输出是什么样子的吗?嗯,看起来你/tmp中的所有目录都有
setgid
标志。你能告诉我ls-l-d/tmp的输出是什么样子的吗?系统上的
/tmp
是一个单独的分区吗?如果是,它的装载标志是什么?
tmp
不在单独的分区上。输出是
drwxrwsrwt 11 root root 4,0K 10月9日12:04/tmp/
我更新了,一直等到今天早上发生的日志旋转,乘客仍然崩溃。奇怪的是,我在4.0.20上用setgid/tmp测试了你的设置,它对我有效。能否尝试将PassengerTempDir设置为非/tmp的位置?这将避免/tmp可能带来的任何遗留问题。好的,这次看起来它工作正常(我删除了
setgid
标志)。谢谢。@Hongli:我在Passenger 4.0.35中遇到了同样的“尝试重用现有服务器”错误,这是一个回归吗?我不知道。您可以尝试将PassengerTempDir设置为其他位置(非/tmp位置)并检查这是否有帮助吗?这对我起到了作用。具体来说,
停止
然后
启动
工作,而
重启
失败。