如何在Julia

时间:2016-07-13 11:12:56

标签: julia

我正在使用一组计算机运行很长时间。有时,进程中断,我必须手动重启。隔夜发生中断时会有相当长的停机时间。我想知道是否有一种方法可以在Julia中运行一个监督脚本,监视该作业是否在另一个Julia实例中运行。如果它被中断,它将重新启动该进程,并在作业完成后终止。不幸的是,我不确切知道如何检查进程是否正在运行以及如何重新启动进程。这是我的粗略想法:

state = true
while state == true
    #check every minute
    sleep(60)
    data = readcsv("outputfile.csv")
    #read file to check if process is finished 
    if  size(data,1) < N
        #some function to check if the process is running 
        if isrunning() == true
            #Do nothing.Keep running
        else
        #some function to spawn new instance of julia
        #run the code
            include("myscript.jl")
        end
    else
        #Job finished, exit while loop
        state = false
    end
end 

1 个答案:

答案 0 :(得分:4)

正确工作的正确工具。 使用命令行shell。 如果它不合时宜地终止,它将给出错误状态代码。

例如 Bash

until julia myscript.jl; 
do echo "Failed/Interrupted. Restarting in 5s. Press Ctrl-C now to interrupt.";
sleep 5;
done`

因为朱莉娅不能作为你可以做的命令行跑步者,在 julia

while true
    try
        run(`julia myscript.jl`) #Run a separate process
        break
    catch
        println("Failed/Interrupted. Restarting in 5s. Press Ctrl-C now to interrupt.")
        sleep(5)
    end
end