passenger 3.0.0.pre4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (175) hide show
  1. data/bin/passenger-install-apache2-module +6 -6
  2. data/doc/Users guide Apache.html +1 -1
  3. data/doc/Users guide Nginx.html +1 -1
  4. data/doc/Users guide Standalone.html +1 -1
  5. data/doc/cxxapi/Constants_8h_source.html +1 -1
  6. data/doc/cxxapi/MessageServer_8h_source.html +416 -410
  7. data/doc/rdoc/classes/ConditionVariable.html +215 -0
  8. data/doc/rdoc/classes/Exception.html +120 -0
  9. data/doc/rdoc/classes/GC.html +113 -0
  10. data/doc/rdoc/classes/IO.html +221 -0
  11. data/doc/rdoc/classes/PhusionPassenger.html +397 -0
  12. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +180 -0
  13. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +647 -0
  14. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +654 -0
  15. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +92 -0
  16. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
  17. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
  18. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
  19. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
  20. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +619 -0
  21. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +142 -0
  22. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +368 -0
  23. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +231 -0
  24. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +588 -0
  25. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +92 -0
  26. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +92 -0
  27. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +147 -0
  28. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +279 -0
  29. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +92 -0
  30. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +92 -0
  31. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +123 -0
  32. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +92 -0
  33. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +341 -0
  34. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +294 -0
  35. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +199 -0
  36. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +155 -0
  37. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +367 -0
  38. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +95 -0
  39. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +351 -0
  40. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +98 -0
  41. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +200 -0
  42. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +410 -0
  43. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +98 -0
  44. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +156 -0
  45. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +115 -0
  46. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +202 -0
  47. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
  48. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +273 -0
  49. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
  50. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +162 -0
  51. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
  52. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
  53. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +673 -0
  54. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +92 -0
  55. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +415 -0
  56. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +134 -0
  57. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +129 -0
  58. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +1809 -0
  59. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +237 -0
  60. data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
  61. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +312 -0
  62. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +98 -0
  63. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +218 -0
  64. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +114 -0
  65. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +256 -0
  66. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +139 -0
  67. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +118 -0
  68. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +135 -0
  69. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +378 -0
  70. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +111 -0
  71. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +252 -0
  72. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +161 -0
  73. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +368 -0
  74. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +132 -0
  75. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +151 -0
  76. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +189 -0
  77. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +177 -0
  78. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +341 -0
  79. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +203 -0
  80. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +156 -0
  81. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +168 -0
  82. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +86 -0
  83. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +135 -0
  84. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
  85. data/doc/rdoc/classes/PhusionPassenger/Utils.html +1550 -0
  86. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +204 -0
  87. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +171 -0
  88. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +140 -0
  89. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +260 -0
  90. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +169 -0
  91. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +265 -0
  92. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
  93. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +561 -0
  94. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
  95. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
  96. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +182 -0
  97. data/doc/rdoc/classes/Process.html +115 -0
  98. data/doc/rdoc/classes/Signal.html +139 -0
  99. data/doc/rdoc/created.rid +1 -0
  100. data/doc/rdoc/files/DEVELOPERS_TXT.html +276 -0
  101. data/doc/rdoc/files/README.html +157 -0
  102. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +130 -0
  103. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +135 -0
  104. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
  105. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
  106. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +126 -0
  107. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +132 -0
  108. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
  109. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +129 -0
  110. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +127 -0
  111. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +141 -0
  112. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +126 -0
  113. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +146 -0
  114. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +125 -0
  115. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +132 -0
  116. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
  117. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
  118. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +122 -0
  119. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +147 -0
  120. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
  121. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +127 -0
  122. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
  123. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +127 -0
  124. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +132 -0
  125. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  126. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +127 -0
  127. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +129 -0
  128. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +126 -0
  129. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +126 -0
  130. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +126 -0
  131. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +126 -0
  132. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +127 -0
  133. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +128 -0
  134. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +126 -0
  135. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +122 -0
  136. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +127 -0
  137. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +127 -0
  138. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +137 -0
  139. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
  140. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +127 -0
  141. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
  142. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +160 -0
  143. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +127 -0
  144. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +135 -0
  145. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +126 -0
  146. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +126 -0
  147. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +126 -0
  148. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +127 -0
  149. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +133 -0
  150. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +136 -0
  151. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +126 -0
  152. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +126 -0
  153. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +126 -0
  154. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +127 -0
  155. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +126 -0
  156. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +120 -0
  157. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
  158. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +122 -0
  159. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +126 -0
  160. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +179 -0
  161. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +132 -0
  162. data/doc/rdoc/fr_class_index.html +138 -0
  163. data/doc/rdoc/fr_file_index.html +108 -0
  164. data/doc/rdoc/fr_method_index.html +430 -0
  165. data/doc/rdoc/index.html +26 -0
  166. data/doc/rdoc/rdoc-style.css +187 -0
  167. data/ext/apache2/HelperAgent.cpp +7 -1
  168. data/ext/common/Constants.h +1 -1
  169. data/ext/common/MessageServer.h +7 -1
  170. data/ext/nginx/StaticContentHandler.c +5 -13
  171. data/lib/phusion_passenger.rb +2 -2
  172. data/lib/phusion_passenger/standalone/start_command.rb +6 -6
  173. data/lib/phusion_passenger/templates/standalone/config.erb +2 -2
  174. metadata +168 -12
  175. data/ext/libev/config.h +0 -122
@@ -0,0 +1,231 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Class: PhusionPassenger::AdminTools::MemoryStats::Process</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "show source"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "hide source"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Class</span><br />PhusionPassenger::AdminTools::MemoryStats::Process</td>
55
+ <td align="right">
56
+ <table cellspacing="0" cellpadding="2">
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../../../../files/lib/phusion_passenger/admin_tools/memory_stats_rb.html">lib/phusion_passenger/admin_tools/memory_stats.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ Object
67
+ </td>
68
+ </tr>
69
+ </table>
70
+ </td>
71
+ </tr>
72
+ </table>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+ <div id="content">
77
+
78
+ <div class="description"><p>
79
+ Information about a single process.
80
+ </p>
81
+ </div>
82
+
83
+
84
+
85
+ <div class="sectiontitle">Methods</div>
86
+ <ul>
87
+ <li><a href="#M000166">private_dirty_rss_in_mb</a></li>
88
+ <li><a href="#M000165">rss_in_mb</a></li>
89
+ <li><a href="#M000167">to_a</a></li>
90
+ <li><a href="#M000164">vm_size_in_mb</a></li>
91
+ </ul>
92
+
93
+
94
+
95
+
96
+
97
+ <div class="sectiontitle">Attributes</div>
98
+ <table border='0' cellpadding='5'>
99
+ <tr valign='top'>
100
+ <td class='attr-rw'>
101
+ [RW]
102
+ </td>
103
+ <td class='attr-name'>cpu</td>
104
+ <td class='attr-desc'></td>
105
+ </tr>
106
+ <tr valign='top'>
107
+ <td class='attr-rw'>
108
+ [RW]
109
+ </td>
110
+ <td class='attr-name'>name</td>
111
+ <td class='attr-desc'></td>
112
+ </tr>
113
+ <tr valign='top'>
114
+ <td class='attr-rw'>
115
+ [RW]
116
+ </td>
117
+ <td class='attr-name'>pid</td>
118
+ <td class='attr-desc'></td>
119
+ </tr>
120
+ <tr valign='top'>
121
+ <td class='attr-rw'>
122
+ [RW]
123
+ </td>
124
+ <td class='attr-name'>ppid</td>
125
+ <td class='attr-desc'></td>
126
+ </tr>
127
+ <tr valign='top'>
128
+ <td class='attr-rw'>
129
+ [RW]
130
+ </td>
131
+ <td class='attr-name'>private_dirty_rss</td>
132
+ <td class='attr-desc'></td>
133
+ </tr>
134
+ <tr valign='top'>
135
+ <td class='attr-rw'>
136
+ [RW]
137
+ </td>
138
+ <td class='attr-name'>rss</td>
139
+ <td class='attr-desc'></td>
140
+ </tr>
141
+ <tr valign='top'>
142
+ <td class='attr-rw'>
143
+ [RW]
144
+ </td>
145
+ <td class='attr-name'>threads</td>
146
+ <td class='attr-desc'></td>
147
+ </tr>
148
+ <tr valign='top'>
149
+ <td class='attr-rw'>
150
+ [RW]
151
+ </td>
152
+ <td class='attr-name'>vm_size</td>
153
+ <td class='attr-desc'></td>
154
+ </tr>
155
+ </table>
156
+
157
+ <div class="sectiontitle">Public Instance methods</div>
158
+ <div class="method">
159
+ <div class="title">
160
+ <a name="M000166"></a><b>private_dirty_rss_in_mb</b>()
161
+ </div>
162
+ <div class="sourcecode">
163
+ <p class="source-link">[ <a href="javascript:toggleSource('M000166_source')" id="l_M000166_source">show source</a> ]</p>
164
+ <div id="M000166_source" class="dyn-source">
165
+ <pre>
166
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/memory_stats.rb, line 49</span>
167
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">private_dirty_rss_in_mb</span>
168
+ 50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">private_dirty_rss</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Numeric</span>)
169
+ 51: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%.1f MB&quot;</span>, <span class="ruby-identifier">private_dirty_rss</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024.0</span>)
170
+ 52: <span class="ruby-keyword kw">else</span>
171
+ 53: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;?&quot;</span>
172
+ 54: <span class="ruby-keyword kw">end</span>
173
+ 55: <span class="ruby-keyword kw">end</span>
174
+ </pre>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ <div class="method">
179
+ <div class="title">
180
+ <a name="M000165"></a><b>rss_in_mb</b>()
181
+ </div>
182
+ <div class="sourcecode">
183
+ <p class="source-link">[ <a href="javascript:toggleSource('M000165_source')" id="l_M000165_source">show source</a> ]</p>
184
+ <div id="M000165_source" class="dyn-source">
185
+ <pre>
186
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/memory_stats.rb, line 45</span>
187
+ 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rss_in_mb</span>
188
+ 46: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%.1f MB&quot;</span>, <span class="ruby-identifier">rss</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024.0</span>)
189
+ 47: <span class="ruby-keyword kw">end</span>
190
+ </pre>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ <div class="method">
195
+ <div class="title">
196
+ <a name="M000167"></a><b>to_a</b>()
197
+ </div>
198
+ <div class="sourcecode">
199
+ <p class="source-link">[ <a href="javascript:toggleSource('M000167_source')" id="l_M000167_source">show source</a> ]</p>
200
+ <div id="M000167_source" class="dyn-source">
201
+ <pre>
202
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/memory_stats.rb, line 57</span>
203
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
204
+ 58: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">pid</span>, <span class="ruby-identifier">ppid</span>, <span class="ruby-identifier">vm_size_in_mb</span>, <span class="ruby-identifier">private_dirty_rss_in_mb</span>, <span class="ruby-identifier">rss_in_mb</span>, <span class="ruby-identifier">name</span>]
205
+ 59: <span class="ruby-keyword kw">end</span>
206
+ </pre>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ <div class="method">
211
+ <div class="title">
212
+ <a name="M000164"></a><b>vm_size_in_mb</b>()
213
+ </div>
214
+ <div class="sourcecode">
215
+ <p class="source-link">[ <a href="javascript:toggleSource('M000164_source')" id="l_M000164_source">show source</a> ]</p>
216
+ <div id="M000164_source" class="dyn-source">
217
+ <pre>
218
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/memory_stats.rb, line 41</span>
219
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vm_size_in_mb</span>
220
+ 42: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%.1f MB&quot;</span>, <span class="ruby-identifier">vm_size</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024.0</span>)
221
+ 43: <span class="ruby-keyword kw">end</span>
222
+ </pre>
223
+ </div>
224
+ </div>
225
+ </div>
226
+ </div>
227
+
228
+ </div>
229
+
230
+ </body>
231
+ </html>
@@ -0,0 +1,588 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Class: PhusionPassenger::AdminTools::ServerInstance</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "show source"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "hide source"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Class</span><br />PhusionPassenger::AdminTools::ServerInstance</td>
55
+ <td align="right">
56
+ <table cellspacing="0" cellpadding="2">
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../../../files/lib/phusion_passenger/admin_tools/server_instance_rb.html">lib/phusion_passenger/admin_tools/server_instance.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ Object
67
+ </td>
68
+ </tr>
69
+ </table>
70
+ </td>
71
+ </tr>
72
+ </table>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+ <div id="content">
77
+
78
+
79
+
80
+
81
+ <div class="sectiontitle">Methods</div>
82
+ <ul>
83
+ <li><a href="#M000144">analytics_log_dir</a></li>
84
+ <li><a href="#M000146">backtraces</a></li>
85
+ <li><a href="#M000140">connect</a></li>
86
+ <li><a href="#M000138">for_pid</a></li>
87
+ <li><a href="#M000149">global_queue_size</a></li>
88
+ <li><a href="#M000150">groups</a></li>
89
+ <li><a href="#M000143">helper_server_pid</a></li>
90
+ <li><a href="#M000137">list</a></li>
91
+ <li><a href="#M000139">new</a></li>
92
+ <li><a href="#M000151">processes</a></li>
93
+ <li><a href="#M000148">stats</a></li>
94
+ <li><a href="#M000145">status</a></li>
95
+ <li><a href="#M000142">web_server_config_files</a></li>
96
+ <li><a href="#M000141">web_server_description</a></li>
97
+ <li><a href="#M000147">xml</a></li>
98
+ </ul>
99
+
100
+
101
+
102
+ <div class="sectiontitle">Classes and Modules</div>
103
+ Class <a href="ServerInstance/CorruptedDirectoryError.html" class="link">PhusionPassenger::AdminTools::ServerInstance::CorruptedDirectoryError</a><br />
104
+ Class <a href="ServerInstance/GenerationsAbsentError.html" class="link">PhusionPassenger::AdminTools::ServerInstance::GenerationsAbsentError</a><br />
105
+ Class <a href="ServerInstance/Group.html" class="link">PhusionPassenger::AdminTools::ServerInstance::Group</a><br />
106
+ Class <a href="ServerInstance/Process.html" class="link">PhusionPassenger::AdminTools::ServerInstance::Process</a><br />
107
+ Class <a href="ServerInstance/RoleDeniedError.html" class="link">PhusionPassenger::AdminTools::ServerInstance::RoleDeniedError</a><br />
108
+ Class <a href="ServerInstance/StaleDirectoryError.html" class="link">PhusionPassenger::AdminTools::ServerInstance::StaleDirectoryError</a><br />
109
+ Class <a href="ServerInstance/Stats.html" class="link">PhusionPassenger::AdminTools::ServerInstance::Stats</a><br />
110
+ Class <a href="ServerInstance/UnsupportedGenerationStructureVersionError.html" class="link">PhusionPassenger::AdminTools::ServerInstance::UnsupportedGenerationStructureVersionError</a><br />
111
+
112
+
113
+ <div class="sectiontitle">Constants</div>
114
+ <table border='0' cellpadding='5'>
115
+ <tr valign='top'>
116
+ <td class="attr-name">DIR_STRUCTURE_MAJOR_VERSION</td>
117
+ <td>=</td>
118
+ <td class="attr-value">1</td>
119
+ </tr>
120
+ <tr valign='top'>
121
+ <td>&nbsp;</td>
122
+ <td colspan="2" class="attr-desc">
123
+ If you change the structure version then don&#8216;t forget to change
124
+ ext/common/ServerInstanceDir.h too.
125
+
126
+ </td>
127
+ </tr>
128
+ <tr valign='top'>
129
+ <td class="attr-name">DIR_STRUCTURE_MINOR_VERSION</td>
130
+ <td>=</td>
131
+ <td class="attr-value">0</td>
132
+ </tr>
133
+ <tr valign='top'>
134
+ <td class="attr-name">GENERATION_STRUCTURE_MAJOR_VERSION</td>
135
+ <td>=</td>
136
+ <td class="attr-value">1</td>
137
+ </tr>
138
+ <tr valign='top'>
139
+ <td class="attr-name">GENERATION_STRUCTURE_MINOR_VERSION</td>
140
+ <td>=</td>
141
+ <td class="attr-value">0</td>
142
+ </tr>
143
+ <tr valign='top'>
144
+ <td class="attr-name">STALE_TIME_THRESHOLD</td>
145
+ <td>=</td>
146
+ <td class="attr-value">60</td>
147
+ </tr>
148
+ </table>
149
+
150
+ <div class="sectiontitle">Attributes</div>
151
+ <table border='0' cellpadding='5'>
152
+ <tr valign='top'>
153
+ <td class='attr-rw'>
154
+ [R]
155
+ </td>
156
+ <td class='attr-name'>generation_path</td>
157
+ <td class='attr-desc'></td>
158
+ </tr>
159
+ <tr valign='top'>
160
+ <td class='attr-rw'>
161
+ [R]
162
+ </td>
163
+ <td class='attr-name'>path</td>
164
+ <td class='attr-desc'></td>
165
+ </tr>
166
+ <tr valign='top'>
167
+ <td class='attr-rw'>
168
+ [R]
169
+ </td>
170
+ <td class='attr-name'>pid</td>
171
+ <td class='attr-desc'></td>
172
+ </tr>
173
+ </table>
174
+
175
+ <div class="sectiontitle">Public Class methods</div>
176
+ <div class="method">
177
+ <div class="title">
178
+ <a name="M000138"></a><b>for_pid</b>(pid, options = {})
179
+ </div>
180
+ <div class="sourcecode">
181
+ <p class="source-link">[ <a href="javascript:toggleSource('M000138_source')" id="l_M000138_source">show source</a> ]</p>
182
+ <div id="M000138_source" class="dyn-source">
183
+ <pre>
184
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 136</span>
185
+ 136: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">for_pid</span>(<span class="ruby-identifier">pid</span>, <span class="ruby-identifier">options</span> = {})
186
+ 137: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">pid</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">pid</span> }
187
+ 138: <span class="ruby-keyword kw">end</span>
188
+ </pre>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ <div class="method">
193
+ <div class="title">
194
+ <a name="M000137"></a><b>list</b>(options = {})
195
+ </div>
196
+ <div class="sourcecode">
197
+ <p class="source-link">[ <a href="javascript:toggleSource('M000137_source')" id="l_M000137_source">show source</a> ]</p>
198
+ <div id="M000137_source" class="dyn-source">
199
+ <pre>
200
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 109</span>
201
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">list</span>(<span class="ruby-identifier">options</span> = {})
202
+ 110: <span class="ruby-identifier">options</span> = {
203
+ 111: <span class="ruby-identifier">:clean_stale_or_corrupted</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
204
+ 112: }.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
205
+ 113: <span class="ruby-identifier">instances</span> = []
206
+ 114:
207
+ 115: <span class="ruby-constant">Dir</span>[<span class="ruby-node">&quot;#{AdminTools.tmpdir}/passenger.*&quot;</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dir</span><span class="ruby-operator">|</span>
208
+ 116: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">dir</span>) <span class="ruby-operator">!~</span> <span class="ruby-node">/passenger\.#{DIR_STRUCTURE_MAJOR_VERSION}\.(\d+)\.(\d+)\Z/</span>
209
+ 117: <span class="ruby-identifier">minor</span> = <span class="ruby-identifier">$1</span>
210
+ 118: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minor</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-constant">DIR_STRUCTURE_MINOR_VERSION</span>
211
+ 119:
212
+ 120: <span class="ruby-keyword kw">begin</span>
213
+ 121: <span class="ruby-identifier">instances</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ServerInstance</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">dir</span>)
214
+ 122: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StaleDirectoryError</span>, <span class="ruby-constant">CorruptedDirectoryError</span>
215
+ 123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:clean_stale_or_corrupted</span>] <span class="ruby-operator">&amp;&amp;</span>
216
+ 124: <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">dir</span>).<span class="ruby-identifier">mtime</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">current_time</span> <span class="ruby-operator">-</span> <span class="ruby-constant">STALE_TIME_THRESHOLD</span>
217
+ 125: <span class="ruby-identifier">log_cleaning_action</span>(<span class="ruby-identifier">dir</span>)
218
+ 126: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">chmod_R</span>(<span class="ruby-value">0700</span>, <span class="ruby-identifier">dir</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
219
+ 127: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-identifier">dir</span>)
220
+ 128: <span class="ruby-keyword kw">end</span>
221
+ 129: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">UnsupportedGenerationStructureVersionError</span>, <span class="ruby-constant">GenerationsAbsentError</span>
222
+ 130: <span class="ruby-comment cmt"># Do nothing.</span>
223
+ 131: <span class="ruby-keyword kw">end</span>
224
+ 132: <span class="ruby-keyword kw">end</span>
225
+ 133: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instances</span>
226
+ 134: <span class="ruby-keyword kw">end</span>
227
+ </pre>
228
+ </div>
229
+ </div>
230
+ </div>
231
+ <div class="method">
232
+ <div class="title">
233
+ <a name="M000139"></a><b>new</b>(path)
234
+ </div>
235
+ <div class="sourcecode">
236
+ <p class="source-link">[ <a href="javascript:toggleSource('M000139_source')" id="l_M000139_source">show source</a> ]</p>
237
+ <div id="M000139_source" class="dyn-source">
238
+ <pre>
239
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 140</span>
240
+ 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">path</span>)
241
+ 141: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Path may not be nil.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">nil?</span>
242
+ 142: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
243
+ 143:
244
+ 144: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-node">&quot;#{path}/control_process.pid&quot;</span>)
245
+ 145: <span class="ruby-identifier">data</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{path}/control_process.pid&quot;</span>).<span class="ruby-identifier">strip</span>
246
+ 146: <span class="ruby-ivar">@pid</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">to_i</span>
247
+ 147: <span class="ruby-keyword kw">else</span>
248
+ 148: <span class="ruby-identifier">path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/passenger\.\d+\.\d+\.(\d+)\Z/</span>
249
+ 149: <span class="ruby-ivar">@pid</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">to_i</span>
250
+ 150: <span class="ruby-keyword kw">end</span>
251
+ 151:
252
+ 152: <span class="ruby-identifier">generations</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-node">&quot;#{path}/generation-*&quot;</span>]
253
+ 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">generations</span>.<span class="ruby-identifier">empty?</span>
254
+ 154: <span class="ruby-identifier">raise</span> <span class="ruby-constant">GenerationsAbsentError</span>, <span class="ruby-value str">&quot;There are no generation subdirectories in this instance directory.&quot;</span>
255
+ 155: <span class="ruby-keyword kw">end</span>
256
+ 156: <span class="ruby-identifier">highest_generation_number</span> = <span class="ruby-value">0</span>
257
+ 157: <span class="ruby-identifier">generations</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">generation</span><span class="ruby-operator">|</span>
258
+ 158: <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">generation</span>) <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(\d+)/</span>
259
+ 159: <span class="ruby-identifier">generation_number</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">to_i</span>
260
+ 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">generation_number</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">highest_generation_number</span>
261
+ 161: <span class="ruby-identifier">highest_generation_number</span> = <span class="ruby-identifier">generation_number</span>
262
+ 162: <span class="ruby-keyword kw">end</span>
263
+ 163: <span class="ruby-keyword kw">end</span>
264
+ 164: <span class="ruby-ivar">@generation_path</span> = <span class="ruby-node">&quot;#{path}/generation-#{highest_generation_number}&quot;</span>
265
+ 165:
266
+ 166: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-node">&quot;#{@generation_path}/structure_version.txt&quot;</span>)
267
+ 167: <span class="ruby-identifier">raise</span> <span class="ruby-constant">CorruptedDirectoryError</span>, <span class="ruby-value str">&quot;The generation directory doesn't contain a structure version specification file.&quot;</span>
268
+ 168: <span class="ruby-keyword kw">end</span>
269
+ 169: <span class="ruby-identifier">version_data</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{@generation_path}/structure_version.txt&quot;</span>).<span class="ruby-identifier">strip</span>
270
+ 170: <span class="ruby-identifier">major</span>, <span class="ruby-identifier">minor</span> = <span class="ruby-identifier">version_data</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;.&quot;</span>, <span class="ruby-value">2</span>)
271
+ 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">major</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">minor</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">major</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\A\d+\Z/</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">minor</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\A\d+\Z/</span>
272
+ 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">CorruptedDirectoryError</span>, <span class="ruby-value str">&quot;The generation directory doesn't contain a valid structure version specification file.&quot;</span>
273
+ 173: <span class="ruby-keyword kw">end</span>
274
+ 174: <span class="ruby-identifier">major</span> = <span class="ruby-identifier">major</span>.<span class="ruby-identifier">to_i</span>
275
+ 175: <span class="ruby-identifier">minor</span> = <span class="ruby-identifier">minor</span>.<span class="ruby-identifier">to_i</span>
276
+ 176: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">major</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">GENERATION_STRUCTURE_MAJOR_VERSION</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">minor</span> <span class="ruby-operator">&gt;</span> <span class="ruby-constant">GENERATION_STRUCTURE_MINOR_VERSION</span>
277
+ 177: <span class="ruby-identifier">raise</span> <span class="ruby-constant">UnsupportedGenerationStructureVersionError</span>, <span class="ruby-value str">&quot;Unsupported generation directory structure version.&quot;</span>
278
+ 178: <span class="ruby-keyword kw">end</span>
279
+ 179:
280
+ 180: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pid</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
281
+ 181: <span class="ruby-identifier">raise</span> <span class="ruby-constant">CorruptedDirectoryError</span>, <span class="ruby-value str">&quot;Instance directory contains corrupted control_process.pid file.&quot;</span>
282
+ 182: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span><span class="ruby-constant">AdminTools</span>.<span class="ruby-identifier">process_is_alive?</span>(<span class="ruby-ivar">@pid</span>)
283
+ 183: <span class="ruby-identifier">raise</span> <span class="ruby-constant">StaleDirectoryError</span>, <span class="ruby-node">&quot;There is no instance with PID #{@pid}.&quot;</span>
284
+ 184: <span class="ruby-keyword kw">end</span>
285
+ 185: <span class="ruby-keyword kw">end</span>
286
+ </pre>
287
+ </div>
288
+ </div>
289
+ </div>
290
+ <div class="sectiontitle">Public Instance methods</div>
291
+ <div class="method">
292
+ <div class="title">
293
+ <a name="M000144"></a><b>analytics_log_dir</b>()
294
+ </div>
295
+ <div class="sourcecode">
296
+ <p class="source-link">[ <a href="javascript:toggleSource('M000144_source')" id="l_M000144_source">show source</a> ]</p>
297
+ <div id="M000144_source" class="dyn-source">
298
+ <pre>
299
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 239</span>
300
+ 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">analytics_log_dir</span>
301
+ 240: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{@generation_path}/analytics_log_dir.txt&quot;</span>)
302
+ 241: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
303
+ 242: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
304
+ 243: <span class="ruby-keyword kw">end</span>
305
+ </pre>
306
+ </div>
307
+ </div>
308
+ </div>
309
+ <div class="method">
310
+ <div class="title">
311
+ <a name="M000146"></a><b>backtraces</b>()
312
+ </div>
313
+ <div class="sourcecode">
314
+ <p class="source-link">[ <a href="javascript:toggleSource('M000146_source')" id="l_M000146_source">show source</a> ]</p>
315
+ <div id="M000146_source" class="dyn-source">
316
+ <pre>
317
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 249</span>
318
+ 249: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtraces</span>
319
+ 250: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">backtraces</span>
320
+ 251: <span class="ruby-keyword kw">end</span>
321
+ </pre>
322
+ </div>
323
+ </div>
324
+ </div>
325
+ <div class="method">
326
+ <div class="title">
327
+ <a name="M000140"></a><b>connect</b>(role_or_username, password = nil) {|self| ...}
328
+ </div>
329
+ <div class="description">
330
+ <p>
331
+ Raises:
332
+ </p>
333
+ <ul>
334
+ <li><tt>ArgumentError</tt>: Unsupported role
335
+
336
+ </li>
337
+ <li><tt><a href="ServerInstance/RoleDeniedError.html">RoleDeniedError</a></tt>:
338
+ The user that the current process is as is not authorized to utilize the
339
+ given role.
340
+
341
+ </li>
342
+ <li><tt>EOFError</tt>: The server unexpectedly closed the connection during
343
+ authentication.
344
+
345
+ </li>
346
+ <li><tt>SecurityError</tt>: The server denied our authentication credentials.
347
+
348
+ </li>
349
+ </ul>
350
+ </div>
351
+ <div class="sourcecode">
352
+ <p class="source-link">[ <a href="javascript:toggleSource('M000140_source')" id="l_M000140_source">show source</a> ]</p>
353
+ <div id="M000140_source" class="dyn-source">
354
+ <pre>
355
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 192</span>
356
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">role_or_username</span>, <span class="ruby-identifier">password</span> = <span class="ruby-keyword kw">nil</span>)
357
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">role_or_username</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Symbol</span>)
358
+ 194: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">role_or_username</span>
359
+ 195: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:passenger_status</span>
360
+ 196: <span class="ruby-identifier">username</span> = <span class="ruby-value str">&quot;_passenger-status&quot;</span>
361
+ 197: <span class="ruby-keyword kw">begin</span>
362
+ 198: <span class="ruby-identifier">filename</span> = <span class="ruby-node">&quot;#{@generation_path}/passenger-status-password.txt&quot;</span>
363
+ 199: <span class="ruby-identifier">password</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">&quot;rb&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
364
+ 200: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
365
+ 201: <span class="ruby-keyword kw">end</span>
366
+ 202: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EACCES</span>
367
+ 203: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RoleDeniedError</span>
368
+ 204: <span class="ruby-keyword kw">end</span>
369
+ 205: <span class="ruby-keyword kw">else</span>
370
+ 206: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Unsupported role #{role_or_username}&quot;</span>
371
+ 207: <span class="ruby-keyword kw">end</span>
372
+ 208: <span class="ruby-keyword kw">else</span>
373
+ 209: <span class="ruby-identifier">username</span> = <span class="ruby-identifier">role_or_username</span>
374
+ 210: <span class="ruby-keyword kw">end</span>
375
+ 211:
376
+ 212: <span class="ruby-ivar">@client</span> = <span class="ruby-constant">MessageClient</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>, <span class="ruby-node">&quot;unix:#{@generation_path}/socket&quot;</span>)
377
+ 213: <span class="ruby-keyword kw">begin</span>
378
+ 214: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
379
+ 215: <span class="ruby-keyword kw">ensure</span>
380
+ 216: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">close</span>
381
+ 217: <span class="ruby-keyword kw">end</span>
382
+ 218: <span class="ruby-keyword kw">end</span>
383
+ </pre>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ <div class="method">
388
+ <div class="title">
389
+ <a name="M000149"></a><b>global_queue_size</b>()
390
+ </div>
391
+ <div class="sourcecode">
392
+ <p class="source-link">[ <a href="javascript:toggleSource('M000149_source')" id="l_M000149_source">show source</a> ]</p>
393
+ <div id="M000149_source" class="dyn-source">
394
+ <pre>
395
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 267</span>
396
+ 267: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">global_queue_size</span>
397
+ 268: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">global_queue_size</span>
398
+ 269: <span class="ruby-keyword kw">end</span>
399
+ </pre>
400
+ </div>
401
+ </div>
402
+ </div>
403
+ <div class="method">
404
+ <div class="title">
405
+ <a name="M000150"></a><b>groups</b>()
406
+ </div>
407
+ <div class="sourcecode">
408
+ <p class="source-link">[ <a href="javascript:toggleSource('M000150_source')" id="l_M000150_source">show source</a> ]</p>
409
+ <div id="M000150_source" class="dyn-source">
410
+ <pre>
411
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 271</span>
412
+ 271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">groups</span>
413
+ 272: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xml</span>)
414
+ 273:
415
+ 274: <span class="ruby-identifier">groups</span> = []
416
+ 275: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span>(<span class="ruby-value str">&quot;info/groups/group&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">group_xml</span><span class="ruby-operator">|</span>
417
+ 276: <span class="ruby-identifier">group</span> = <span class="ruby-constant">Group</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">group_xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;app_root&quot;</span>].<span class="ruby-identifier">text</span>,
418
+ 277: <span class="ruby-identifier">group_xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;name&quot;</span>].<span class="ruby-identifier">text</span>,
419
+ 278: <span class="ruby-identifier">group_xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;environment&quot;</span>].<span class="ruby-identifier">text</span>)
420
+ 279: <span class="ruby-identifier">group_xml</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span>(<span class="ruby-value str">&quot;processes/process&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">process_xml</span><span class="ruby-operator">|</span>
421
+ 280: <span class="ruby-identifier">process</span> = <span class="ruby-constant">Process</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">group</span>)
422
+ 281: <span class="ruby-identifier">process_xml</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
423
+ 282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;server_sockets&quot;</span>
424
+ 283: <span class="ruby-identifier">element</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span>(<span class="ruby-value str">&quot;server_socket&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">server_socket</span><span class="ruby-operator">|</span>
425
+ 284: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">server_socket</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;name&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_sym</span>
426
+ 285: <span class="ruby-identifier">address</span> = <span class="ruby-identifier">server_socket</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;address&quot;</span>].<span class="ruby-identifier">text</span>
427
+ 286: <span class="ruby-identifier">address_type</span> = <span class="ruby-identifier">server_socket</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;type&quot;</span>].<span class="ruby-identifier">text</span>
428
+ 287: <span class="ruby-identifier">process</span>.<span class="ruby-identifier">server_sockets</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>(
429
+ 288: <span class="ruby-identifier">:address</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">address</span>,
430
+ 289: <span class="ruby-identifier">:address_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">address_type</span>
431
+ 290: )
432
+ 291: <span class="ruby-keyword kw">end</span>
433
+ 292: <span class="ruby-keyword kw">else</span>
434
+ 293: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">process</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-node">&quot;#{element.name}=&quot;</span>)
435
+ 294: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-constant">INT_PROPERTIES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>)
436
+ 295: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_i</span>
437
+ 296: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-constant">BOOL_PROPERTIES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">element</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>)
438
+ 297: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;true&quot;</span>
439
+ 298: <span class="ruby-keyword kw">else</span>
440
+ 299: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span>
441
+ 300: <span class="ruby-keyword kw">end</span>
442
+ 301: <span class="ruby-identifier">process</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{element.name}=&quot;</span>, <span class="ruby-identifier">value</span>)
443
+ 302: <span class="ruby-keyword kw">end</span>
444
+ 303: <span class="ruby-keyword kw">end</span>
445
+ 304: <span class="ruby-keyword kw">end</span>
446
+ 305: <span class="ruby-identifier">group</span>.<span class="ruby-identifier">processes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">process</span>
447
+ 306: <span class="ruby-keyword kw">end</span>
448
+ 307: <span class="ruby-identifier">groups</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">group</span>
449
+ 308: <span class="ruby-keyword kw">end</span>
450
+ 309: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">groups</span>
451
+ 310: <span class="ruby-keyword kw">end</span>
452
+ </pre>
453
+ </div>
454
+ </div>
455
+ </div>
456
+ <div class="method">
457
+ <div class="title">
458
+ <a name="M000143"></a><b>helper_server_pid</b>()
459
+ </div>
460
+ <div class="sourcecode">
461
+ <p class="source-link">[ <a href="javascript:toggleSource('M000143_source')" id="l_M000143_source">show source</a> ]</p>
462
+ <div id="M000143_source" class="dyn-source">
463
+ <pre>
464
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 235</span>
465
+ 235: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">helper_server_pid</span>
466
+ 236: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{@generation_path}/helper_server.pid&quot;</span>).<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">to_i</span>
467
+ 237: <span class="ruby-keyword kw">end</span>
468
+ </pre>
469
+ </div>
470
+ </div>
471
+ </div>
472
+ <div class="method">
473
+ <div class="title">
474
+ <a name="M000151"></a><b>processes</b>()
475
+ </div>
476
+ <div class="sourcecode">
477
+ <p class="source-link">[ <a href="javascript:toggleSource('M000151_source')" id="l_M000151_source">show source</a> ]</p>
478
+ <div id="M000151_source" class="dyn-source">
479
+ <pre>
480
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 312</span>
481
+ 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processes</span>
482
+ 313: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">groups</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">group</span><span class="ruby-operator">|</span>
483
+ 314: <span class="ruby-identifier">group</span>.<span class="ruby-identifier">processes</span>
484
+ 315: <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">flatten</span>
485
+ 316: <span class="ruby-keyword kw">end</span>
486
+ </pre>
487
+ </div>
488
+ </div>
489
+ </div>
490
+ <div class="method">
491
+ <div class="title">
492
+ <a name="M000148"></a><b>stats</b>()
493
+ </div>
494
+ <div class="sourcecode">
495
+ <p class="source-link">[ <a href="javascript:toggleSource('M000148_source')" id="l_M000148_source">show source</a> ]</p>
496
+ <div id="M000148_source" class="dyn-source">
497
+ <pre>
498
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 257</span>
499
+ 257: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
500
+ 258: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xml</span>)
501
+ 259: <span class="ruby-identifier">stats</span> = <span class="ruby-constant">Stats</span>.<span class="ruby-identifier">new</span>
502
+ 260: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">max</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;info/max&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_i</span>
503
+ 261: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">count</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;info/count&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_i</span>
504
+ 262: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;info/active&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_i</span>
505
+ 263: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">global_queue_size</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;info/global_queue_size&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">to_i</span>
506
+ 264: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">stats</span>
507
+ 265: <span class="ruby-keyword kw">end</span>
508
+ </pre>
509
+ </div>
510
+ </div>
511
+ </div>
512
+ <div class="method">
513
+ <div class="title">
514
+ <a name="M000145"></a><b>status</b>()
515
+ </div>
516
+ <div class="sourcecode">
517
+ <p class="source-link">[ <a href="javascript:toggleSource('M000145_source')" id="l_M000145_source">show source</a> ]</p>
518
+ <div id="M000145_source" class="dyn-source">
519
+ <pre>
520
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 245</span>
521
+ 245: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">status</span>
522
+ 246: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">status</span>
523
+ 247: <span class="ruby-keyword kw">end</span>
524
+ </pre>
525
+ </div>
526
+ </div>
527
+ </div>
528
+ <div class="method">
529
+ <div class="title">
530
+ <a name="M000142"></a><b>web_server_config_files</b>()
531
+ </div>
532
+ <div class="sourcecode">
533
+ <p class="source-link">[ <a href="javascript:toggleSource('M000142_source')" id="l_M000142_source">show source</a> ]</p>
534
+ <div id="M000142_source" class="dyn-source">
535
+ <pre>
536
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 224</span>
537
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">web_server_config_files</span>
538
+ 225: <span class="ruby-identifier">config_files</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{@generation_path}/config_files.txt&quot;</span>).<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
539
+ 226: <span class="ruby-identifier">config_files</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">filename</span><span class="ruby-operator">|</span>
540
+ 227: <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">strip</span>
541
+ 228: <span class="ruby-keyword kw">end</span>
542
+ 229: <span class="ruby-identifier">config_files</span>.<span class="ruby-identifier">reject</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">filename</span><span class="ruby-operator">|</span>
543
+ 230: <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">empty?</span>
544
+ 231: <span class="ruby-keyword kw">end</span>
545
+ 232: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">config_files</span>
546
+ 233: <span class="ruby-keyword kw">end</span>
547
+ </pre>
548
+ </div>
549
+ </div>
550
+ </div>
551
+ <div class="method">
552
+ <div class="title">
553
+ <a name="M000141"></a><b>web_server_description</b>()
554
+ </div>
555
+ <div class="sourcecode">
556
+ <p class="source-link">[ <a href="javascript:toggleSource('M000141_source')" id="l_M000141_source">show source</a> ]</p>
557
+ <div id="M000141_source" class="dyn-source">
558
+ <pre>
559
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 220</span>
560
+ 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">web_server_description</span>
561
+ 221: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;#{@generation_path}/web_server.txt&quot;</span>)
562
+ 222: <span class="ruby-keyword kw">end</span>
563
+ </pre>
564
+ </div>
565
+ </div>
566
+ </div>
567
+ <div class="method">
568
+ <div class="title">
569
+ <a name="M000147"></a><b>xml</b>()
570
+ </div>
571
+ <div class="sourcecode">
572
+ <p class="source-link">[ <a href="javascript:toggleSource('M000147_source')" id="l_M000147_source">show source</a> ]</p>
573
+ <div id="M000147_source" class="dyn-source">
574
+ <pre>
575
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/admin_tools/server_instance.rb, line 253</span>
576
+ 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xml</span>
577
+ 254: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">xml</span>
578
+ 255: <span class="ruby-keyword kw">end</span>
579
+ </pre>
580
+ </div>
581
+ </div>
582
+ </div>
583
+ </div>
584
+
585
+ </div>
586
+
587
+ </body>
588
+ </html>