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,341 @@
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::Standalone::RuntimeInstaller</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::Standalone::RuntimeInstaller</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/standalone/runtime_installer_rb.html">lib/phusion_passenger/standalone/runtime_installer.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ AbstractInstaller
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
+ Installs the Phusion Passenger <a href="../Standalone.html">Standalone</a>
80
+ runtime by downloading and compiling Nginx, compiling the Phusion Passenger
81
+ support binaries, and storing the results in the designated directories.
82
+ This installer is entirely non-interactive.
83
+ </p>
84
+ <p>
85
+ The following option must be given:
86
+ </p>
87
+ <ul>
88
+ <li>source_root: Path to the Phusion Passenger source root.
89
+
90
+ </li>
91
+ </ul>
92
+ <p>
93
+ If you want <a href="RuntimeInstaller.html">RuntimeInstaller</a> to compile
94
+ and install Nginx, then you must specify these options:
95
+ </p>
96
+ <ul>
97
+ <li>nginx_dir: Nginx will be installed into this directory.
98
+
99
+ </li>
100
+ <li>support_dir: See below.
101
+
102
+ </li>
103
+ <li>version (optional): The Nginx version to download. If not given then a
104
+ hardcoded version number will be used.
105
+
106
+ </li>
107
+ <li>tarball (optional): The location to the Nginx tarball. This tarball
108
+ <b>must</b> contain the Nginx version as specified by <tt>version</tt>. If
109
+ <tt>tarball</tt> is given then Nginx will not be downloaded; it will be
110
+ extracted from this tarball instead.
111
+
112
+ </li>
113
+ </ul>
114
+ <p>
115
+ If you want <a href="RuntimeInstaller.html">RuntimeInstaller</a> to compile
116
+ and install the Phusion Passenger support files, then you must specify
117
+ these:
118
+ </p>
119
+ <ul>
120
+ <li>support_dir: The support files will be installed here. Should not equal
121
+ <tt>source_root</tt>, or funny things might happen.
122
+
123
+ </li>
124
+ </ul>
125
+ <p>
126
+ Other optional options:
127
+ </p>
128
+ <ul>
129
+ <li>download_binaries: If true then <a
130
+ href="RuntimeInstaller.html">RuntimeInstaller</a> will attempt to download
131
+ precompiled Nginx binaries and precompiled Phusion Passenger support files
132
+ from the network, if they exist for the current platform. The default is
133
+ false.
134
+
135
+ </li>
136
+ <li>binaries_url_root: The URL on which to look for the aforementioned
137
+ binaries. The default points to the Phusion website.
138
+
139
+ </li>
140
+ </ul>
141
+ <p>
142
+ Please note that <a href="RuntimeInstaller.html">RuntimeInstaller</a> will
143
+ try to avoid compiling/installing things that don&#8216;t need to be
144
+ compiled/installed. This is done by checking whether some key files exist,
145
+ and concluding that something doesn&#8216;t need to be compiled/installed
146
+ if they do. This quick check is of course not perfect; if you want to force
147
+ a recompilation/reinstall then you should remove <tt>nginx_dir</tt> and
148
+ <tt>support_dir</tt> before starting this installer.
149
+ </p>
150
+ </div>
151
+
152
+
153
+
154
+ <div class="sectiontitle">Methods</div>
155
+ <ul>
156
+ <li><a href="#M000107">after_install</a></li>
157
+ <li><a href="#M000106">before_install</a></li>
158
+ <li><a href="#M000103">dependencies</a></li>
159
+ <li><a href="#M000105">install!</a></li>
160
+ <li><a href="#M000104">users_guide</a></li>
161
+ </ul>
162
+
163
+ <div class="sectiontitle">Included Modules</div>
164
+ <ul>
165
+ <li><a href="Utils.html">Utils</a></li>
166
+ </ul>
167
+
168
+
169
+
170
+
171
+
172
+ <div class="sectiontitle">Protected Instance methods</div>
173
+ <div class="method">
174
+ <div class="title">
175
+ <a name="M000107"></a><b>after_install</b>()
176
+ </div>
177
+ <div class="sourcecode">
178
+ <p class="source-link">[ <a href="javascript:toggleSource('M000107_source')" id="l_M000107_source">show source</a> ]</p>
179
+ <div id="M000107_source" class="dyn-source">
180
+ <pre>
181
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/runtime_installer.rb, line 173</span>
182
+ 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after_install</span>
183
+ 174: <span class="ruby-keyword kw">super</span>
184
+ 175: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-ivar">@working_dir</span>)
185
+ 176: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:runtime_installer_cleanup</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@plugin</span>
186
+ 177: <span class="ruby-keyword kw">end</span>
187
+ </pre>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ <div class="method">
192
+ <div class="title">
193
+ <a name="M000106"></a><b>before_install</b>()
194
+ </div>
195
+ <div class="sourcecode">
196
+ <p class="source-link">[ <a href="javascript:toggleSource('M000106_source')" id="l_M000106_source">show source</a> ]</p>
197
+ <div id="M000106_source" class="dyn-source">
198
+ <pre>
199
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/runtime_installer.rb, line 163</span>
200
+ 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before_install</span>
201
+ 164: <span class="ruby-keyword kw">super</span>
202
+ 165: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:runtime_installer_start</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@plugin</span>
203
+ 166: <span class="ruby-ivar">@working_dir</span> = <span class="ruby-node">&quot;/tmp/#{myself}-passenger-standalone-#{Process.pid}&quot;</span>
204
+ 167: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-ivar">@working_dir</span>)
205
+ 168: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-ivar">@working_dir</span>)
206
+ 169: <span class="ruby-ivar">@download_binaries</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@download_binaries</span>)
207
+ 170: <span class="ruby-ivar">@binaries_url_root</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">STANDALONE_BINARIES_URL_ROOT</span>
208
+ 171: <span class="ruby-keyword kw">end</span>
209
+ </pre>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ <div class="method">
214
+ <div class="title">
215
+ <a name="M000103"></a><b>dependencies</b>()
216
+ </div>
217
+ <div class="sourcecode">
218
+ <p class="source-link">[ <a href="javascript:toggleSource('M000103_source')" id="l_M000103_source">show source</a> ]</p>
219
+ <div id="M000103_source" class="dyn-source">
220
+ <pre>
221
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/runtime_installer.rb, line 76</span>
222
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dependencies</span>
223
+ 77: <span class="ruby-identifier">result</span> = [
224
+ 78: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">GCC</span>,
225
+ 79: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">GnuMake</span>,
226
+ 80: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">DownloadTool</span>,
227
+ 81: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Ruby_DevHeaders</span>,
228
+ 82: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Ruby_OpenSSL</span>,
229
+ 83: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">RubyGems</span>,
230
+ 84: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Rake</span>,
231
+ 85: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Rack</span>,
232
+ 86: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Curl_Dev</span>,
233
+ 87: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">OpenSSL_Dev</span>,
234
+ 88: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Zlib_Dev</span>,
235
+ 89: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">File_Tail</span>,
236
+ 90: <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">Daemon_Controller</span>,
237
+ 91: ]
238
+ 92: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Dependencies</span>.<span class="ruby-identifier">fastthread_required?</span>
239
+ 93: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">FastThread</span>
240
+ 94: <span class="ruby-keyword kw">end</span>
241
+ 95: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Dependencies</span>.<span class="ruby-identifier">asciidoc_required?</span>
242
+ 96: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Dependencies</span><span class="ruby-operator">::</span><span class="ruby-constant">AsciiDoc</span>
243
+ 97: <span class="ruby-keyword kw">end</span>
244
+ 98: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
245
+ 99: <span class="ruby-keyword kw">end</span>
246
+ </pre>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ <div class="method">
251
+ <div class="title">
252
+ <a name="M000105"></a><b>install!</b>()
253
+ </div>
254
+ <div class="sourcecode">
255
+ <p class="source-link">[ <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">show source</a> ]</p>
256
+ <div id="M000105_source" class="dyn-source">
257
+ <pre>
258
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/runtime_installer.rb, line 105</span>
259
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">install!</span>
260
+ 106: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@support_dir</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@nginx_dir</span>
261
+ 107: <span class="ruby-identifier">show_welcome_screen</span>
262
+ 108: <span class="ruby-keyword kw">end</span>
263
+ 109: <span class="ruby-identifier">check_dependencies</span>(<span class="ruby-keyword kw">false</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">exit</span>(<span class="ruby-value">1</span>)
264
+ 110: <span class="ruby-identifier">puts</span>
265
+ 111: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">passenger_support_files_need_to_be_installed?</span>
266
+ 112: <span class="ruby-identifier">check_whether_we_can_write_to</span>(<span class="ruby-ivar">@support_dir</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">exit</span>(<span class="ruby-value">1</span>)
267
+ 113: <span class="ruby-keyword kw">end</span>
268
+ 114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nginx_needs_to_be_installed?</span>
269
+ 115: <span class="ruby-identifier">check_whether_we_can_write_to</span>(<span class="ruby-ivar">@nginx_dir</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">exit</span>(<span class="ruby-value">1</span>)
270
+ 116: <span class="ruby-keyword kw">end</span>
271
+ 117:
272
+ 118: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">passenger_support_files_need_to_be_installed?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">should_download_binaries?</span>
273
+ 119: <span class="ruby-identifier">download_and_extract_passenger_binaries</span>(<span class="ruby-ivar">@support_dir</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span><span class="ruby-operator">|</span>
274
+ 120: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1</span>, <span class="ruby-value str">&quot;Extracting Passenger binaries...&quot;</span>)
275
+ 121: <span class="ruby-keyword kw">end</span>
276
+ 122: <span class="ruby-identifier">puts</span>
277
+ 123: <span class="ruby-identifier">puts</span>
278
+ 124: <span class="ruby-keyword kw">end</span>
279
+ 125: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nginx_needs_to_be_installed?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">should_download_binaries?</span>
280
+ 126: <span class="ruby-identifier">download_and_extract_nginx_binaries</span>(<span class="ruby-ivar">@nginx_dir</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span><span class="ruby-operator">|</span>
281
+ 127: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1</span>, <span class="ruby-value str">&quot;Extracting Nginx binaries...&quot;</span>)
282
+ 128: <span class="ruby-keyword kw">end</span>
283
+ 129: <span class="ruby-identifier">puts</span>
284
+ 130: <span class="ruby-identifier">puts</span>
285
+ 131: <span class="ruby-keyword kw">end</span>
286
+ 132:
287
+ 133: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nginx_needs_to_be_installed?</span>
288
+ 134: <span class="ruby-identifier">nginx_source_dir</span> = <span class="ruby-identifier">download_and_extract_nginx_sources</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span><span class="ruby-operator">|</span>
289
+ 135: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">1</span>, <span class="ruby-value">7</span>, <span class="ruby-value str">&quot;Extracting...&quot;</span>)
290
+ 136: <span class="ruby-keyword kw">end</span>
291
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nginx_source_dir</span>.<span class="ruby-identifier">nil?</span>
292
+ 138: <span class="ruby-identifier">puts</span>
293
+ 139: <span class="ruby-identifier">show_possible_solutions_for_download_and_extraction_problems</span>
294
+ 140: <span class="ruby-identifier">exit</span>(<span class="ruby-value">1</span>)
295
+ 141: <span class="ruby-keyword kw">end</span>
296
+ 142: <span class="ruby-keyword kw">end</span>
297
+ 143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">passenger_support_files_need_to_be_installed?</span>
298
+ 144: <span class="ruby-identifier">install_passenger_support_files</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-identifier">phase</span>, <span class="ruby-identifier">status_text</span><span class="ruby-operator">|</span>
299
+ 145: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">phase</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
300
+ 146: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">2</span>, <span class="ruby-value">7</span>, <span class="ruby-identifier">status_text</span>)
301
+ 147: <span class="ruby-keyword kw">else</span>
302
+ 148: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">3</span><span class="ruby-operator">..</span><span class="ruby-value">5</span>, <span class="ruby-value">7</span>, <span class="ruby-identifier">status_text</span>)
303
+ 149: <span class="ruby-keyword kw">end</span>
304
+ 150: <span class="ruby-keyword kw">end</span>
305
+ 151: <span class="ruby-keyword kw">end</span>
306
+ 152: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nginx_needs_to_be_installed?</span>
307
+ 153: <span class="ruby-identifier">install_nginx_from_source</span>(<span class="ruby-identifier">nginx_source_dir</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-identifier">status_text</span><span class="ruby-operator">|</span>
308
+ 154: <span class="ruby-identifier">show_progress</span>(<span class="ruby-identifier">progress</span>, <span class="ruby-identifier">total</span>, <span class="ruby-value">6</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>, <span class="ruby-value">7</span>, <span class="ruby-identifier">status_text</span>)
309
+ 155: <span class="ruby-keyword kw">end</span>
310
+ 156: <span class="ruby-keyword kw">end</span>
311
+ 157:
312
+ 158: <span class="ruby-identifier">puts</span>
313
+ 159: <span class="ruby-identifier">color_puts</span> <span class="ruby-value str">&quot;&lt;green&gt;&lt;b&gt;All done!&lt;/b&gt;&lt;/green&gt;&quot;</span>
314
+ 160: <span class="ruby-identifier">puts</span>
315
+ 161: <span class="ruby-keyword kw">end</span>
316
+ </pre>
317
+ </div>
318
+ </div>
319
+ </div>
320
+ <div class="method">
321
+ <div class="title">
322
+ <a name="M000104"></a><b>users_guide</b>()
323
+ </div>
324
+ <div class="sourcecode">
325
+ <p class="source-link">[ <a href="javascript:toggleSource('M000104_source')" id="l_M000104_source">show source</a> ]</p>
326
+ <div id="M000104_source" class="dyn-source">
327
+ <pre>
328
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/runtime_installer.rb, line 101</span>
329
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">users_guide</span>
330
+ 102: <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{DOCDIR}/Users guide Standalone.html&quot;</span>
331
+ 103: <span class="ruby-keyword kw">end</span>
332
+ </pre>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ </div>
337
+
338
+ </div>
339
+
340
+ </body>
341
+ </html>
@@ -0,0 +1,203 @@
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::Standalone::StartCommand</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::Standalone::StartCommand</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/standalone/start_command_rb.html">lib/phusion_passenger/standalone/start_command.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ <a href="Command.html">
67
+ Command
68
+ </a>
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </td>
73
+ </tr>
74
+ </table>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+ <div id="content">
79
+
80
+
81
+
82
+
83
+ <div class="sectiontitle">Methods</div>
84
+ <ul>
85
+ <li><a href="#M000088">description</a></li>
86
+ <li><a href="#M000089">new</a></li>
87
+ <li><a href="#M000090">run</a></li>
88
+ </ul>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <div class="sectiontitle">Public Class methods</div>
96
+ <div class="method">
97
+ <div class="title">
98
+ <a name="M000088"></a><b>description</b>()
99
+ </div>
100
+ <div class="sourcecode">
101
+ <p class="source-link">[ <a href="javascript:toggleSource('M000088_source')" id="l_M000088_source">show source</a> ]</p>
102
+ <div id="M000088_source" class="dyn-source">
103
+ <pre>
104
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/start_command.rb, line 42</span>
105
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">description</span>
106
+ 43: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;Start Phusion Passenger Standalone.&quot;</span>
107
+ 44: <span class="ruby-keyword kw">end</span>
108
+ </pre>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ <div class="method">
113
+ <div class="title">
114
+ <a name="M000089"></a><b>new</b>(args)
115
+ </div>
116
+ <div class="sourcecode">
117
+ <p class="source-link">[ <a href="javascript:toggleSource('M000089_source')" id="l_M000089_source">show source</a> ]</p>
118
+ <div id="M000089_source" class="dyn-source">
119
+ <pre>
120
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/start_command.rb, line 46</span>
121
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">args</span>)
122
+ 47: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">args</span>)
123
+ 48: <span class="ruby-ivar">@console_mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
124
+ 49: <span class="ruby-ivar">@termination_pipe</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">pipe</span>
125
+ 50: <span class="ruby-ivar">@threads</span> = []
126
+ 51: <span class="ruby-ivar">@interruptable_threads</span> = []
127
+ 52: <span class="ruby-ivar">@plugin</span> = <span class="ruby-constant">PhusionPassenger</span><span class="ruby-operator">::</span><span class="ruby-constant">Plugin</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'standalone/start_command'</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-ivar">@options</span>)
128
+ 53: <span class="ruby-keyword kw">end</span>
129
+ </pre>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ <div class="sectiontitle">Public Instance methods</div>
134
+ <div class="method">
135
+ <div class="title">
136
+ <a name="M000090"></a><b>run</b>()
137
+ </div>
138
+ <div class="sourcecode">
139
+ <p class="source-link">[ <a href="javascript:toggleSource('M000090_source')" id="l_M000090_source">show source</a> ]</p>
140
+ <div id="M000090_source" class="dyn-source">
141
+ <pre>
142
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/standalone/start_command.rb, line 55</span>
143
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
144
+ 56: <span class="ruby-identifier">parse_my_options</span>
145
+ 57: <span class="ruby-identifier">sanity_check_options</span>
146
+ 58:
147
+ 59: <span class="ruby-identifier">ensure_nginx_installed</span>
148
+ 60: <span class="ruby-identifier">require_file_tail</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">should_watch_logs?</span>
149
+ 61: <span class="ruby-identifier">determine_various_resource_locations</span>
150
+ 62: <span class="ruby-identifier">require_app_finder</span>
151
+ 63: <span class="ruby-ivar">@app_finder</span> = <span class="ruby-constant">AppFinder</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@args</span>, <span class="ruby-ivar">@options</span>)
152
+ 64: <span class="ruby-ivar">@apps</span> = <span class="ruby-ivar">@app_finder</span>.<span class="ruby-identifier">scan</span>
153
+ 65: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:found_apps</span>, <span class="ruby-ivar">@apps</span>)
154
+ 66:
155
+ 67: <span class="ruby-identifier">extra_controller_options</span> = {}
156
+ 68: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:before_creating_nginx_controller</span>, <span class="ruby-identifier">extra_controller_options</span>)
157
+ 69: <span class="ruby-identifier">create_nginx_controller</span>(<span class="ruby-identifier">extra_controller_options</span>)
158
+ 70:
159
+ 71: <span class="ruby-keyword kw">begin</span>
160
+ 72: <span class="ruby-identifier">start_nginx</span>
161
+ 73: <span class="ruby-identifier">show_intro_message</span>
162
+ 74: <span class="ruby-identifier">daemonize</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:daemonize</span>]
163
+ 75: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">abort_on_exception</span> = <span class="ruby-keyword kw">true</span>
164
+ 76: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:nginx_started</span>, <span class="ruby-ivar">@nginx</span>)
165
+ 77: <span class="ruby-comment cmt">########################</span>
166
+ 78: <span class="ruby-comment cmt">########################</span>
167
+ 79: <span class="ruby-identifier">watch_log_files_in_background</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">should_watch_logs?</span>
168
+ 80: <span class="ruby-identifier">wait_until_nginx_has_exited</span>
169
+ 81: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Interrupt</span>
170
+ 82: <span class="ruby-identifier">stop_threads</span>
171
+ 83: <span class="ruby-identifier">stop_nginx</span>
172
+ 84: <span class="ruby-identifier">exit</span> <span class="ruby-value">2</span>
173
+ 85: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SignalException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">signal</span>
174
+ 86: <span class="ruby-identifier">stop_threads</span>
175
+ 87: <span class="ruby-identifier">stop_nginx</span>
176
+ 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">signal</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'SIGINT'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">signal</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'SIGTERM'</span>
177
+ 89: <span class="ruby-identifier">exit</span> <span class="ruby-value">2</span>
178
+ 90: <span class="ruby-keyword kw">else</span>
179
+ 91: <span class="ruby-identifier">raise</span>
180
+ 92: <span class="ruby-keyword kw">end</span>
181
+ 93: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
182
+ 94: <span class="ruby-identifier">stop_threads</span>
183
+ 95: <span class="ruby-identifier">stop_nginx</span>
184
+ 96: <span class="ruby-identifier">raise</span>
185
+ 97: <span class="ruby-keyword kw">ensure</span>
186
+ 98: <span class="ruby-identifier">stop_threads</span>
187
+ 99: <span class="ruby-keyword kw">end</span>
188
+ 100: <span class="ruby-keyword kw">ensure</span>
189
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@config_filename</span>
190
+ 102: <span class="ruby-constant">File</span>.<span class="ruby-identifier">unlink</span>(<span class="ruby-ivar">@config_filename</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
191
+ 103: <span class="ruby-keyword kw">end</span>
192
+ 104: <span class="ruby-ivar">@plugin</span>.<span class="ruby-identifier">call_hook</span>(<span class="ruby-identifier">:cleanup</span>)
193
+ 105: <span class="ruby-keyword kw">end</span>
194
+ </pre>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
199
+
200
+ </div>
201
+
202
+ </body>
203
+ </html>