<div class="section" id="child-commands-comparison">
<span id="child-commands"></span><span id="index-0"></span>
<p>SMS child commands are not binary compatible with ecFlow. The
following table relates a sms command, provided with SMS package, and
the matching ecflow client call.</p>
<p>Some sms child commands (meter, event) have a query option. ecFlow
relies on the job using ‘ecflow_client –get <path>’ to obtain the
same information:</p>
<table border="1" class="docutils">
<colgroup>
<col width="29%" />
<col width="31%" />
<col width="40%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">SMS commands</th>
<th class="head">ecflow equivalent</th>
<th class="head">comment</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>sms</td>
<td>ecflow_server</td>
<td>sms -b: detach the server from session
nohup ecflow_server > out 2>&1 &:</td>
</tr>
<tr class="row-odd"><td>smsabort</td>
<td>ecflow_client –abort <reason></td>
<td> </td>
</tr>
<tr class="row-even"><td>smsalive</td>
<td><none></td>
<td>task heart-bit,
not used at the centre</td>
</tr>
<tr class="row-odd"><td>smscompletre</td>
<td>ecflow_client –complete</td>
<td> </td>
</tr>
<tr class="row-even"><td>smsdate</td>
<td><none></td>
<td>not a child command -
date manipulation utility,
not part of ecflow</td>
</tr>
<tr class="row-odd"><td>smsdie</td>
<td><none></td>
<td>clean RPC port
not needed with ecflow</td>
</tr>
<tr class="row-even"><td>smsevent <name></td>
<td>ecflow_client –event <name></td>
<td> </td>
</tr>
<tr class="row-odd"><td>smsinit $PID</td>
<td>ecflow_client –init <rid></td>
<td>restricted to integer for SMS
(use smsrid for string)</td>
</tr>
<tr class="row-even"><td>smslabel <name> <string></td>
<td>ecflow_client –label <n> <s></td>
<td> </td>
</tr>
<tr class="row-odd"><td>smsmeter <name> <step></td>
<td>ecflow_client –meter <n> <s></td>
<td> </td>
</tr>
<tr class="row-even"><td>smsmsg <string tokens></td>
<td>ecflow_client –msg <string></td>
<td> </td>
</tr>
<tr class="row-odd"><td>smsping</td>
<td>ecflow_client –ping</td>
<td> </td>
</tr>
<tr class="row-even"><td>smsrand</td>
<td><none></td>
<td>not a child command, used to
introduce random task runtime,
in test mode, for sms</td>
</tr>
<tr class="row-odd"><td>smsrid <string></td>
<td><none></td>
<td>ecflow_client –init
is used with string job id</td>
</tr>
<tr class="row-even"><td>smsstatus <node path></td>
<td><none></td>
<td>ecflow_client –get <path>
can be used to get node state</td>
</tr>
<tr class="row-odd"><td>smsvariable <string> <value></td>
<td><none></td>
<td>variable is only updated by SMS,
not created, and it must belong
to the node
ecflow_client –get <path> can be
used to get variable value,
create or update any variable</td>
</tr>
<tr class="row-even"><td>smswait <trigger expression></td>
<td>ecflow_client –wait <string></td>
<td> </td>
</tr>
</tbody>
</table>
<p>sms expects string tokens, builds up the related tree, checks its value on the server,</p>
<p>ecflow expect one string containing the trigger expression to check</p>
<p>In order to migrate tasks, and keep the ability for them to
communicate with the server in charge, SMS or ecflow, child commands
were replaced with ksh functions,</p>
<p>to call the right child according to the variable ECF_PORT set to 0
(sms case) or not (originated from ecflow server).</p>
</div>
|