Linux:在子shell中运行

时间:2017-06-09 13:37:00

标签: linux bash nohup subshell

我想从一个脚本开始一个长时间运行的进程然后退出,但我无处可去。这是我最简单的测试。每次运行时,控制台都会被阻止5秒钟。

// Create script
me@mine:~/workspace/bin$ cat > test.sh
sleep 5
// Verify script
me@mine:~/workspace/bin$ cat test.sh
sleep 5
// Make executable
me@mine:~/workspace/bin$ chmod 777 test.sh
// Expect to wait
me@mine:~/workspace/bin$ ./test.sh
// Expect to return, still waits
me@mine:~/workspace/bin$ ./test.sh ?
// Ditto
me@mine:~/workspace/bin$ nohup ./test.sh ?
nohup: ignoring input and appending output to 'nohup.out'
me@mine:~/workspace/bin$ 

我正在运行Ubuntu 17.04 64, GNU bash,版本4.4.7(1)-release(x86_64-pc-linux-gnu)

我是一个Linux菜鸟,我确信我没有得到什么。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

使用&符号:nohup ./test.sh &

答案 1 :(得分:0)

看起来你的脚本正在等待某事。将脚本粘贴到此处。

答案 2 :(得分:0)

有几种方法可以做到,我的首选方法是在行尾添加&符Thing thing = new Thing(); if (thing.changeSomething()){ if (thing.shouldDoSomething()){ //do more things } }

this answer

找到了更多方法

关于&符号方法here

的更多解释