我有这个名为 wsjs.sh
的脚本:
#!/bin/bash
WS=/home/user/wsjs
cd $WS
nohup atom . &
gnome-terminal
grunt watch
如果我在 bash 中运行它:
./wsjs.sh
然后atom编辑器,gnome-terminal分别启动,当前bash显示:
user@ubuntu:~$ ./wsjs.pwd
nohup: appending output to ‘nohup.out’
Running "watch" task
Waiting...
现在如果我按下 ctrl + c
,grunt watch
退出,但原子编辑器也关闭了。
...这很奇怪。
我在 bash 中手动输入了每个命令,并且 atom 没有关闭。 我用 gedit 替换了 atom 并运行脚本,它没有关闭。
为什么 atom 被关闭了?谢谢!
最佳答案
这是因为在执行 shell 脚本时,它有一个进程 ID,而文件中执行的命令将有一个脚本文件的父进程 ID。 因此,在终止或 Ctl+C 脚本文件时,它也会终止子进程(在您的情况下
cd $WS
nohup atom . &
gnome-terminal
grunt watch
) 在执行单个命令时具有独立的进程 ID。
希望你明白了。
关于linux - Ctrl + C 终止 "grunt watch",但杀死从同一个 bash 启动的 Atom 编辑器,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555662/