[Mono-list] How to Run Linux Execute Command ">" and "&"
cosy
tugbairmak at hotmail.com
Fri May 31 08:44:33 UTC 2013
Hello Everybody!Im working in linux. I have a problem for you.When the button
clicked, I execute a linux command like "mpirun" in background even my mono
program closed after button clicked. However i have a problem with ">" and
"&" command.I want to get a program standard output line by line with live
time continuosly and put it in "regcm.out" syncronusly. But now i get the
output when the standartoutput finished. And when my program closed, i can
not get the outputs at all. I want to work it in background so i want to
execute ">" and "&" commands what can i do? My code is; protected void
OnRunModelButtonClicked (object sender, EventArgs e) { SaveFile ();
string regcmMPI = Tools.regCmBinPath + "regcmMPI"; string CoreSelection =
CoreSelectionTextview.Buffer.Text;* string mpirunCode= (CoreSelection + "
" + regcmMPI + " " + Tools.projectPath + "XRegCM.in" + ">>regcm.log 2>&1");*
*Tools.ExecuteOperation executer = Tools.ExecuteAsync;
executer.BeginInvoke("mpirun", " -np " + mpirunCode, Tools.mpirunPath,
Tools.Callback, executer);* } }Tools. ExecuteAsync / Execute; public
static int Execute(string exe, string args, string workingDirectory, ref
string standartOutput, ref string standartError, bool isAsync) {
standartOutput = ""; standartError = ""; ProcessStartInfo oInfo =
new ProcessStartInfo(exe, args); oInfo.UseShellExecute = false;
oInfo.CreateNoWindow = true; oInfo.RedirectStandardOutput = true;
oInfo.RedirectStandardError = true; if(workingDirectory != "") {
oInfo.WorkingDirectory = workingDirectory; } int exitCode = -1;
try { Process proc = System.Diagnostics.Process.Start(oInfo);
proc.WaitForExit(); exitCode = proc.ExitCode;
System.IO.StreamReader sReader = proc.StandardOutput; standartOutput =
sReader.ReadToEnd (); sReader = proc.StandardError; standartError =
sReader.ReadToEnd (); proc.Close(); } catch(Exception exp) {
if(!isAsync) { MessageBox.Show (exp.Message); MessageBox.Show
(exp.StackTrace); } else { standartError += "\n Exception
Message : " + exp.Message; standartError += "\n Exception Stack Trace :
" + exp.StackTrace; } } return exitCode; }
--
View this message in context: http://mono.1490590.n4.nabble.com/How-to-Run-Linux-Execute-Command-and-tp4659829.html
Sent from the Mono - General mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-list/attachments/20130531/d9002766/attachment.html>
More information about the Mono-list
mailing list