Hi all

I am invoking a Julia process from an external program (say a Java script, 
Windows or any program). 
Julia starts, does some calculations and closes again. While Julia runs I 
can of course see the REPL which shows me some logging and evaluations.

I now want to set up a web service (REST or similar) where people can 
upload data, start of a model, and download results. For this I want to 
have a log file which shows the same or similar output which the REPL 
(=Julia session) displays. I understand that the REPL is does much more 
than just displaying stdout and stderr (this is why is said similar before).

Leah Hanson is describing 
<http://blog.leahhanson.us/running-shell-commands-from-julia.html>  (Base.|> 
) which works perfectly for me. But this only works if I use Julia to start 
another Julia session. In my case I want to start Julia from windows (a 
*.bat file) or any other software. How can I achieve the same result?

I am aware of redirect_stdout and redirect_stderr. This does not work 
properly for me, as the program might run for several minutes, and it seems 
to me that output is only written after I flush or close the stream. But I 
want to see the progress in the log file (just as the REPL does) while my 
code runs. It would be tedious to add "flush"  everywhere in my code where 
I have a print command.

Is there a way to achieve this? 

As mentioned above I can invoke a julia session which starts another julia 
session with the actual code:
(st,pr) = open(`$(juliaExecutable) $(juliaProgram) $(arguments)` |> 
logFilename)
Is there a way to achieve the same result without the intermediate julia 
session?

Thanks
Bernhard

Reply via email to