Page History
HTML |
---|
<style type="text/css"> .highlight .hll { background-color: #ffffcc } .highlight { background: #eeffcc; } .highlight .c { color: #408090; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #007020; font-weight: bold } /* Keyword */ .highlight .o { color: #666666 } /* Operator */ .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #007020 } /* Comment.Preproc */ .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .go { color: #303030 } /* Generic.Output */ .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #0040D0 } /* Generic.Traceback */ .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #007020 } /* Keyword.Pseudo */ .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #902000 } /* Keyword.Type */ .highlight .m { color: #208050 } /* Literal.Number */ .highlight .s { color: #4070a0 } /* Literal.String */ .highlight .na { color: #4070a0 } /* Name.Attribute */ .highlight .nb { color: #007020 } /* Name.Builtin */ .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ .highlight .no { color: #60add5 } /* Name.Constant */ .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #007020 } /* Name.Exception */ .highlight .nf { color: #06287e } /* Name.Function */ .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #bb60d5 } /* Name.Variable */ .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mf { color: #208050 } /* Literal.Number.Float */ .highlight .mh { color: #208050 } /* Literal.Number.Hex */ .highlight .mi { color: #208050 } /* Literal.Number.Integer */ .highlight .mo { color: #208050 } /* Literal.Number.Oct */ .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ .highlight .sc { color: #4070a0 } /* Literal.String.Char */ .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ .highlight .sx { color: #c65d09 } /* Literal.String.Other */ .highlight .sr { color: #235388 } /* Literal.String.Regex */ .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ .highlight .ss { color: #517918 } /* Literal.String.Symbol */ .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ </style> <div class="section" id="getting-started"> <span id="index-0"></span><span id="id1"></span> <p>Create <ul> <li><p class="first">Create a directory called course in your home directory (mkdir course)</p> <div class="line-block"> <div class="line">In order to use ecFlow we first need to start the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a></div> </div> <div class="line-block"> <div class="line">Depending on your machine choose between the two methods below to start</div> <div class="line">the server.</div> </div> <div class="section" id="shared-machine"> <h2>Shared Machine<a class="headerlink" href="#shared-machine" title="Permalink to this headline">¶</a></h2> <div class="line-block"> <div class="line"</li> <li><p class="first">Open a new window, change the current directory to course (cd course) and start an <a class="reference internal" href="../wiki../display../ECFLOWglossary/Glossary#term#term-ecflowecf-server"><em class="xref std std-term">ecflow>ecf_server</em></a>:</div> <div class="line">If If you are using a shared machine then type</div> type:</div>p> <div class="highlight-python"><pre>> ecf_start.sh</pre> </div> <div class="line-block"> <div class="line">This <p>This will start an <a class="reference internal" href="../wiki../display../ECFLOWglossary/Glossary#term#term-ecflowecf-server"><em class="xref std std-term">ecflow>ecf_server</em></a> running on your system with a port number unique to your user ID.</div> <div class="line">ECF ECF log files and check point files are created in the current directory by default.</div> </div> <div class="line-block"> <div class="line">Pleasep> <p>Please keep a note of the <strong>Host</strong> and <strong>Port</strong> given from your ecf_start.sh output for later.</div> <div Note that the default for ECF log files is the <tt class="file docutils literal"><span class="line">Thepre">~/ecf_server</span></tt> directory. The host and portprogram number uniquely identify your ECF server.</div> <div class="line">When When you want to access this server with <a class="reference internal" href="/wiki/display/ECFLOW/ecFlow+Python+Api#python-api"><em>ecFlow Python Api</em></a> or <a class="reference internal" href="../wiki../display../ECFLOWglossary/Glossary#term#term-ecflowview"><em class="xref std std-term">ecflowview<>ecFlowview</em></a> you need to know these numbers.</div> <div class="line">By By setting the value of the environmentvariable variables ECF_NODE and ECF_PORT you identify the server you wish to access.</div> <div class="line">Multiple Multiple <a class="reference internal" href="../wiki../display../ECFLOWglossary/Glossary#term#term-ecflowecf-server"><em class="xref std std-term">ecflow>ecf_server</em></a>‘s can run on the same system.</div> </div> </div> <div class="section" id="local-machine"> <h2>Local Machine<a class="headerlink" href="#local-machine" title="Permalink to this headline">¶</a></h2> p> <p>Alternatively if you are running on your own local machine type<type:</p> <div class="highlight-python"><pre>> ecflowecf_server</pre> </div> <p>at the unix prompt.</p> <div class="line-block"> <div class="line">This <p>This will start an <a class="reference internal" href="../wiki../display../ECFLOWglossary/Glossary#term#term-ecflowecf-server"><em class="xref std std-term">ecflow>ecf_server</em></a> running on your system with a default host name of “localhost” and</div> <div class="line">portand port number of 3141. If another program on your machine is using this port number, then you will get</div> <div class="line">anget an “Address in use” error.</div> <div class="line">To To start the server on a specific port number you can use:</div> </div>p> <div class="highlight-python"><pre>> ecflowecf_server --port=3500</pre> </div> <p>or:<<p>or</p> <div class="highlight-python"><pre>> export ECF_PORT=3500; ecflowecf_server</pre> </div> <div class="line-block"> <div class="line">ECF<p>ECF log files and <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-check-point"><em class="xref std std-term">check point</em></a> check point files are created in the current directory by default, and have</div>have <div class="line">a a prefix <machine_name>.<port_number>. As this allows multiple servers to run on the same machine.</div>p> </div>li> <div<li><p class="line-block"> <div class="linefirst">If you had previously run the same ECF server in the past it will also attempt to recover from a previous ecf checkpoint file if available</p> </li> <li><p class="first">In another window, change the current directory to course and copy the file <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em#head-h"><em>head.h</em></a> and <a class="xrefreference std std-term">suite definition</em></a></div>internal" href="#tail-h"><em>tail.h</em></a> into it.</p> </li> </ul> <div class="linesection">from the <a id="head-h"> <span id="id2"></span><h2>head.h<a class="headerlink"reference internal href="#head-h" hreftitle="/wiki/display/ECFLOW/Glossary#term-check-point"><em class="xref std std-term">check point</em></a> file.Permalink to this headline">¶</a></h2> <div class="highlight-python"><pre>#!/bin/ksh set -e # stop the shell on first error set -u # fail when using an undefined variable set -x # echo script lines as they are executed # Defines the variables that are needed for any communication with ECF export ECF_PORT=%ECF_PORT% # The server port number export ECF_NODE=%ECF_NODE% # The name of ecf host that issued this task export ECF_NAME=%ECF_NAME% # The name of this current task export ECF_PASS=%ECF_PASS% # A unique password export ECF_TRYNO=%ECF_TRYNO% # Current try number of the task export ECF_RID=$$ # Tell ecFlow we have stated ecf_client --init=$$ # Defined a error hanlder ERROR() { set +e # Clear -e flag, so we don't fail ecf_client --abort=trap # Notify ecFlow that something went wrong, using 'trap' as the reason trap 0 # Remove the trap exit 0 # End the script } # Trap any calls to exit and errors caught by the -e flag trap ERROR 0 # Trap any signal that may cause the script to fail trap '{ echo "Killed by a signal"; ERROR ; }' 1 2 3 4 5 6 7 8 10 12 13 15</pre> </div> </div> <p>What to do:</p> <ul <div class="section" id="tail-h"> <span id="id3"></span><h2>tail.h<a class="headerlink" href="#tail-h" title="Permalink to this headline">¶</a></h2> <div class="simple"> <li>Start the server</li> </ul>highlight-python"><pre>ecf_client --complete # Notify ecFlow of a normal end trap 0 # Remove all traps exit 0 # End the shell</pre> </div> </div> </div> |