有没有办法在新进程中运行bash脚本中的函数?

有没有办法在新进程中运行bash脚本中的函数?,bash,terminal,Bash,Terminal,我需要在一个完全独立的进程中运行bomb函数,而不是在一个子进程中,这样当一个新的终端窗口关闭时,整个脚本就不会关闭。我试着用&结束这一行,但这不起作用,因为它创建了一个子流程 #!/bin/bash bomb(){ while : do x-terminal-emulator -e bomb done } point(){ score=$(<score.txt) let score=$score+1 echo $scor

我需要在一个完全独立的进程中运行bomb函数,而不是在一个子进程中,这样当一个新的终端窗口关闭时,整个脚本就不会关闭。我试着用&结束这一行,但这不起作用,因为它创建了一个子流程

#!/bin/bash

bomb(){
    while :
    do
        x-terminal-emulator -e bomb
    done
}

point(){
    score=$(<score.txt)
    let score=$score+1
    echo $score > score.txt
}

funcXkill(){
    while :
    do
        xkill
        point
    done
}


funcXkill &
bomb
子shell、父进程和I/O。 在unix下,如果一个进程死亡,它们会向其tty发送一个HUP信号

因此,要分离进程,必须关闭其I/O:

见诺胡普

subfunction </dev/null >/dev/null 2>&1 &
nohup subfunction &