Cron Design: Running Cron: Difference between revisions

m
Reverted edits by Upazixorys (Talk); changed back to last version by Ric
No edit summary
m (Reverted edits by Upazixorys (Talk); changed back to last version by Ric)
 
Line 1: Line 1:
=[http://icucoja.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=
{{Nav Cron Design}}
{{Nav Cron Design}}
Both Cron start and stop requests are passed to a central control block for processing. This control block consists of two scripts '''start_servers.php''' and '''stop_servers.php''' these are located in folder UniServer\unicon\main. Further processing if required is handed on to the appropriate script or scripts.
Both Cron start and stop requests are passed to a central control block for processing. This control block consists of two scripts '''start_servers.php''' and '''stop_servers.php''' these are located in folder UniServer\unicon\main. Further processing if required is handed on to the appropriate script or scripts.
Line 12: Line 11:
|-
|-
|
|
<pre>
<pre>


             CODE  Options are binary coded as follows:
             CODE  Options are binary coded as follows:
Line 22: Line 21:
Cron          16  1 - Run cron          0 - ignore
Cron          16  1 - Run cron          0 - ignore


&lt;/pre&gt;
</pre>
|
|
Binary bit coding does not conform to the classic definition where 1 means on and 0 means off. Uniform Server uses 1 to mean perform the function while 0 means ignore and do nothing.
Binary bit coding does not conform to the classic definition where 1 means on and 0 means off. Uniform Server uses 1 to mean perform the function while 0 means ignore and do nothing.
Line 60: Line 59:


'''Start_Cron.bat''' contains the following line:
'''Start_Cron.bat''' contains the following line:
&lt;pre&gt;
<pre>
..\usr\local\php\php.exe -n  ..\unicon\main\start_servers.php 16
..\usr\local\php\php.exe -n  ..\unicon\main\start_servers.php 16
&lt;/pre&gt;
</pre>
* '''..\usr\local\php\php.exe -n''' Runs the PHP interpreter ('''php.exe''') with no ('''-n''') configuration file and runs the following file:   
* '''..\usr\local\php\php.exe -n''' Runs the PHP interpreter ('''php.exe''') with no ('''-n''') configuration file and runs the following file:   
* '''..\unicon\main\start_servers.php 16''' Script start_servers.php is run with parameter 16 (Runs only Cron)  
* '''..\unicon\main\start_servers.php 16''' Script start_servers.php is run with parameter 16 (Runs only Cron)  
Line 68: Line 67:


'''Stop_Cron.bat''' contains the following line:
'''Stop_Cron.bat''' contains the following line:
&lt;pre&gt;
<pre>
..\usr\local\php\php.exe -n  ..\unicon\main\stop_servers.php 16
..\usr\local\php\php.exe -n  ..\unicon\main\stop_servers.php 16
&lt;/pre&gt;
</pre>
* '''..\usr\local\php\php.exe -n''' Runs the PHP interpreter ('''php.exe''') with no ('''-n''') configuration file and runs the following file:   
* '''..\usr\local\php\php.exe -n''' Runs the PHP interpreter ('''php.exe''') with no ('''-n''') configuration file and runs the following file:   
* '''..\unicon\main\stop_servers.php 16''' Script stop_servers.php is run with parameter 16 (Stops only Cron)  
* '''..\unicon\main\stop_servers.php 16''' Script stop_servers.php is run with parameter 16 (Stops only Cron)  
Line 77: Line 76:
==== UniTray ====
==== UniTray ====
* Left or Right mouse click tray icon
* Left or Right mouse click tray icon
* To run Cron: Advanced &gt; Start Portable Cron
* To run Cron: Advanced > Start Portable Cron
* To stop Cron: Advanced &gt; Stop Portable Cron
* To stop Cron: Advanced > Stop Portable Cron
Have a peek inside Unitrays configuration file: UniServer\unicon\tray_menu\'''UniTray1.ini'''
Have a peek inside Unitrays configuration file: UniServer\unicon\tray_menu\'''UniTray1.ini'''


These two lines (split on purpose to prevent breaking the Wiki) control Cron start and stop. Only thing worth of note is they use binary code '''16'''
These two lines (split on purpose to prevent breaking the Wiki) control Cron start and stop. Only thing worth of note is they use binary code '''16'''
&lt;pre&gt;
<pre>
Type: item; Caption: &quot;Start Portable Cron&quot;; Action: shellexecute; FileName:
Type: item; Caption: "Start Portable Cron"; Action: shellexecute; FileName:
&quot;%PHP%\php-win.exe&quot;; Parameters: &quot; -n %ServerConMain%\start_servers.php 16&quot;; Glyph: 9
"%PHP%\php-win.exe"; Parameters: " -n %ServerConMain%\start_servers.php 16"; Glyph: 9




Type: item; Caption: &quot;Stop  Portable Cron&quot;; Action: shellexecute; FileName:
Type: item; Caption: "Stop  Portable Cron"; Action: shellexecute; FileName:
&quot;%PHP%\php-win.exe&quot;; Parameters: &quot; -n %ServerConMain%\stop_servers.php 16&quot;; Glyph: 11
"%PHP%\php-win.exe"; Parameters: " -n %ServerConMain%\stop_servers.php 16"; Glyph: 11


&lt;/pre&gt;
</pre>


'''''[[#top | Top]]'''''
'''''[[#top | Top]]'''''
Line 101: Line 100:


Change binary code from 7 to 23 for lines three and four.
Change binary code from 7 to 23 for lines three and four.
&lt;pre&gt;
<pre>
;=== LEFT MENU ============
;=== LEFT MENU ============
[Menu.Left]
[Menu.Left]


Type: item; Caption: &quot;Start UniServer (Apache MySQL)&quot;; Action: shellexecute; FileName:
Type: item; Caption: "Start UniServer (Apache MySQL)"; Action: shellexecute; FileName:
  &quot;%PHP%\php.exe&quot;; Parameters: &quot; -n %ServerConMain%\start_servers.php 7&quot;;ShowCmd: hidden; Glyph: 9
  "%PHP%\php.exe"; Parameters: " -n %ServerConMain%\start_servers.php 7";ShowCmd: hidden; Glyph: 9


Type: item; Caption: &quot;Stop  UniServer (Apache MySQL)&quot;; Action: shellexecute; FileName:
Type: item; Caption: "Stop  UniServer (Apache MySQL)"; Action: shellexecute; FileName:
  &quot;%PHP%\php.exe&quot;; Parameters: &quot; -n %ServerConMain%\stop_servers.php 7&quot;;ShowCmd: hidden; Glyph: 11
  "%PHP%\php.exe"; Parameters: " -n %ServerConMain%\stop_servers.php 7";ShowCmd: hidden; Glyph: 11
&lt;/pre&gt;
</pre>
'''''[[#top | Top]]'''''
'''''[[#top | Top]]'''''


Line 123: Line 122:
=== start_servers.php - Cron Section ===
=== start_servers.php - Cron Section ===
{|
{|
|-valign=&quot;top&quot;
|-valign="top"
|
|
* $server_operation contains either the parameter passed or default this is compared with binary 16 using the “binary &amp; bit operator” On a match runs the block of code.
* $server_operation contains either the parameter passed or default this is compared with binary 16 using the “binary & bit operator” On a match runs the block of code.
* If Apache not running give up
* If Apache not running give up
* If Cron already running again give up
* If Cron already running again give up
Line 135: Line 134:
'''''Note 1'':''' For testing the command can be switch making the process visible.
'''''Note 1'':''' For testing the command can be switch making the process visible.


'''''Note 2'':''' If a user turns PC off without closing the servers next time servers are run a clean up operation is performed. Hence this code is run '''set_cron_tracker(&quot;stop&quot;)''' see RUN APACHE SERVER section  
'''''Note 2'':''' If a user turns PC off without closing the servers next time servers are run a clean up operation is performed. Hence this code is run '''set_cron_tracker("stop")''' see RUN APACHE SERVER section  
|
|
&amp;nbsp;
&nbsp;
|
|
'''''start_servers.php'''''
'''''start_servers.php'''''
&lt;pre&gt;
<pre>
// === RUN CRON ============================================================
// === RUN CRON ============================================================
if ((int)$server_operation &amp; 16 ){    // Cron enabled by config or parameter   
if ((int)$server_operation & 16 ){    // Cron enabled by config or parameter   


  if(apache_running()){                // Only run cron if Apache running
  if(apache_running()){                // Only run cron if Apache running
                                       // otherwise ignore and exit quietly
                                       // otherwise ignore and exit quietly


   if(get_cron_tracker() == &quot;run&quot;){  // Cron already running
   if(get_cron_tracker() == "run"){  // Cron already running
     print &quot; Cron already running\n&quot;; // Already running, give up
     print " Cron already running\n"; // Already running, give up
   }
   }
   else{                              // not running
   else{                              // not running
     set_cron_tracker(&quot;run&quot;);        // set tracker to run
     set_cron_tracker("run");        // set tracker to run
     print &quot; Cron started \n&quot;;        // inform user
     print " Cron started \n";        // inform user


     // Test switch between the two: visibe
     // Test switch between the two: visibe
Line 158: Line 157:


     // Test switch between the two: hidden
     // Test switch between the two: hidden
     $cmd = 'start uniserv.exe &quot;..\..\usr\local\php\php.exe run_cron.php&quot;';
     $cmd = 'start uniserv.exe "..\..\usr\local\php\php.exe run_cron.php"';


     pclose(popen($cmd,'r'));            // Start detatched process  
     pclose(popen($cmd,'r'));            // Start detatched process  
Line 165: Line 164:
  }//End Apache running
  }//End Apache running
}// End run cron
}// End run cron
&lt;/pre&gt;
</pre>
|}
|}


Line 172: Line 171:
=== stop_servers.php - Cron Section ===
=== stop_servers.php - Cron Section ===
{|
{|
|-valign=&quot;top&quot;
|-valign="top"
|
|
* $server_operation contains either the parameter passed or default this is compared with binary 16 using the “binary &amp; bit operator” On a match runs the block of code.
* $server_operation contains either the parameter passed or default this is compared with binary 16 using the “binary & bit operator” On a match runs the block of code.
* If Cron is running set the tracker to &quot;stop&quot;
* If Cron is running set the tracker to "stop"


The cron script on detecting a tracker value of &quot;stop&quot; breaks out of an inifinatent while loop thus killing the process.
The cron script on detecting a tracker value of "stop" breaks out of an inifinatent while loop thus killing the process.
|
|
&amp;nbsp;
&nbsp;
|
|
'''''stop_servers.php'''''
'''''stop_servers.php'''''
&lt;pre&gt;
<pre>


// === Stop Cron ========================================================
// === Stop Cron ========================================================


if ((int)$server_operation &amp; 16 ){ // Cron enabled by config or parameter
if ((int)$server_operation & 16 ){ // Cron enabled by config or parameter
  if(get_cron_tracker() == &quot;stop&quot;){ // Already stopped or not running
  if(get_cron_tracker() == "stop"){ // Already stopped or not running
   print &quot; Cron not running\n&quot;;
   print " Cron not running\n";
  }
  }
  else{
  else{
   set_cron_tracker(&quot;stop&quot;);        // Is running signal to stop
   set_cron_tracker("stop");        // Is running signal to stop
   print&quot; Cron stopped.\n&quot;;        // Inform user
   print" Cron stopped.\n";        // Inform user
  }
  }
}
}
&lt;/pre&gt;
</pre>
|}
|}