关于shell脚本里面调用命令的父进程问题
我在做一个测试,写一个shell脚本,里面随便调用一些系统命令,比如rm,chmod之类的,但是我跟踪系统调用发现,在执行rm的时候,他的父进程往上追溯直到1,也米有我这个shell脚本,好奇怪,明明是我的shell调用,为什么rm的父进程不是我的shell脚本呢? 木有人回答呀,如果我只想某个脚本可以调用rm命令删除某个文件,直接rm或者其他脚本都不行,这个怎么实现呢? 怎么确认的rm的parent不是shell? 我把rm操作的所有父进程一直追朔到1,也没有调用的脚本,都是bash,sshd 你的脚本执行rm,那rm不就是你脚本的进程么? 应该不是吧,执行rm的时候显示的进程名字是/bin/rm,而不是我脚本的名字,似乎二者无法联系在一起。 rm一般很快就执行完了,你怎么有时间查看它父进程的? // 脚本内容xxx@HP-xxx:~/test $ cat test.sh
#!/bin/bash
./test
// test.sh启动test,无限打印hello
xxx@HP-xxx:~/test $ ./test.sh
hello
hello
// bash进程号2348,test进程号2349
xxx@HP-xxx:~ $ ps aux | grep test
xxx 23480.00.0166081216 pts/1 S+ 15:14 0:00 /bin/bash ./test.sh
xxx 23490.00.0 4192 356 pts/1 S+ 15:14 0:00 ./test
xxx 23510.00.015936 972 pts/3 S+ 15:14 0:00 grep --color=auto test
// test父进程号2348
xxx@HP-xxx:~ $ cat /proc/2349/status
Name: test
State:S (sleeping)
Tgid: 2349
Ngid: 0
Pid: 2349
PPid: 2348
...
我在我自己电脑验证,父进程不是1 。 你这个2349是/bin/bash,而不是test.sh,test进程和脚本test.sh没有关系。
页:
[1]