the*_*eme 6 linux bash shell atom-editor
我有这个脚本命名wsjs.sh:
#!/bin/bash
WS=/home/user/wsjs
cd $WS
nohup atom . &
gnome-terminal
grunt watch
Run Code Online (Sandbox Code Playgroud)
如果我在bash中运行它:
./wsjs.sh
Run Code Online (Sandbox Code Playgroud)
然后原子编辑器,gnome-terminal分别启动,当前的bash显示:
user@ubuntu:~$ ./wsjs.pwd
nohup: appending output to ‘nohup.out’
Running "watch" task
Waiting...
Run Code Online (Sandbox Code Playgroud)
现在,如果我按ctrl + c,grunt watch退出,BUT原子编辑器也关闭.
......这很奇怪.
我在bash中手动输入了每个命令,并且原子未关闭.我用gedit替换了atom并运行脚本,它没有关闭.
为什么原子关闭了?谢谢!
这是因为在执行shell脚本时,它有一个进程id,并且文件内执行的命令将有一个脚本文件的父进程id。因此,在终止或 Ctl+C 脚本文件时,它也会终止子进程(在您的情况下
cd $WS
nohup atom . &
gnome-terminal
grunt watch
Run Code Online (Sandbox Code Playgroud)
) 执行单个命令时具有独立的进程 ID。
希望你明白了。
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |