我正在尝试启动一个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