Shell以ProcessBuilder开头,tar不起作用

时间:2013-05-31 17:45:26

标签: java bash processbuilder

我正在尝试启动一个shell脚本,它从Java程序中恢复backup.tar.gz。 这有点奇怪,但在我看来,好像tar -xzvf $d.tar.gz没有被执行,如果我从Java程序运行shell。

这是运行shell的部分:

try {
    ProcessBuilder myProc = new ProcessBuilder("nohup", "./restore.sh", "backup"); 
    myProc.directory(new File("/home/user/working/dir/"));
    Process p = myProc.start();
} catch (Exception e) {
 e.printStackTrace(System.err);
}
    something.takes.a.few.secounds();
    program.stop();

这是我的shell脚本:

#!/bin/bash
#  restore.sh : Use $FUNCNAME

archiv(){
    local d="$1"
    [[ -z $d ]] && { echo "${FUNCNAME}(): archiv name not specified"; exit 1; }
    sleep 10
    tar -xzvf $d.tar.gz
    rm -r ../asdf
    mv asdf ..
    echo $d > input.txt
    sudo reboot
}

archiv $1

0 个答案:

没有答案