ecFlow's documentation is now on readthedocs!

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.

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.

SMS commandsecflow equivalentcomment



sms -b: dettach the server from the session to run it when user is logged out.

nohup ecflow_server > out 2>&1 &:

smsabortecflow_client --abort <reason>

user can benefit from knowing if the job stopped with "normal" abort

or following the reception of a user signal (attempt to kill the task)

or because of "early exit", when ecflow_client --complete is missing

smsalive<none>task heart-bit, not used at the centre
smscompleteecflow_client --complete
smsdate<none>not a child command - date manipulation utility, not part of ecFlow
smsdie<none>clean RPC port - not needed with ecFlow
smsevent <name>ecflow_client --event=<name>
smsinit $PIDecflow_client --init=<remote_job_id>restricted to integer for SMS (use smsrid for string)
smslabel <name> <string>ecflow_client --label=<name> <string>
smsmeter <name> <step>ecflow_client --meter=<name> <step>
smsmsg <string tokens>ecflow_client --msg=<string>
smspingecflow_client --ping
smsrand<none>not a child command, used to introduce random task runtime, in test mode, for sms
smsrid <string><none>ecflow_client --init is used with string job id
smsstatus <node path><none>ecflow_client --get=<path> can be used to get node state
smsvariable <string> <value><none>

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

smswait <trigger expression>ecflow_client --wait=<string>

sms expects string tokens, builds up the related tree, checks its value on the server,

ecFlow expect one string containing the trigger expression to check

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,

to call the right child according to the variable ECF_PORT set to 0 (sms case) or not (originated from ecFlow server).