1. 首页
  2. IT资讯

SCP使用SIGSTOP后台运行并简单讨论孤儿进程僵尸进程

关于LINUX SCP后台运行

1、进入会话后
scp  -P 31079 gaopeng@10.10.10.1:/home/gaopeng/yjf_openapi.sql.gz yjf_openapi.sql.gz
输入密码,进程前台运行
2、发出CTRL+Z 信号 SIGSTOP
[1]+  Stopped                 scp -P 31079 gaopeng@10.10.10.1:/home/gaopeng/yjf_openapi.sql.gz yjf_openapi.sql.gz
3、查看JOBS
[root@dyzsdb2 ~]# jobs
[1]+  Stopped                 scp -P 31079 gaopeng@10.10.10.1:/home/gaopeng/yjf_openapi.sql.gz yjf_openapi.sql.gz
4、使用bg 1命令
然后job 1后台运行
5、关闭SHELL 窗口再次查看
root     16297     1  0 16:54 ?        00:00:01 scp -P 31079 gaopeng@10.10.10.1:/home/gaopeng/yjf_openapi.sql.gz yjf_openapi.sql.gz

这个时候可以看到我的SCP进程PPID 是1,由INIT 1,我们的SCP进程成为了孤儿进程由INIT进程接管,但是SCP继续运行没有问题

这里简单说明一下概念:
1、当我们连接到LINUX后创建一个的第一个进程就是SHELL进程
init─┬─abrt-dump-oops
     ├─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
     ├─automount───4*[{automount}]
     ├─certmonger
     ├─crond
     ├─cupsd
     ├─dbus-daemon───{dbus-daemon}
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    └─hald-addon-inpu
     ├─irqbalance
     ├─master─┬─pickup
     │        └─qmgr
     ├─mcelog
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───54*[{mysqld}]
     ├─mysqld_safe───mysqld───444*[{mysqld}]
     ├─rpc.idmapd
     ├─rpc.statd
     ├─rpcbind
     ├─rsyslogd───3*[{rsyslogd}]
     ├─scp───ssh
     ├─sshd───sshd───bash───pstree
     └─udevd───2*[udevd]
我们可以使用PSTREE 简单的看一下 
├─sshd───sshd───bash───pstree
可以看到,我们SHELL进程实际是由SSHD进程FORK出来,而SSHD是由INIT FORK出来。
而我们使用SCP的时候实际就是├─sshd───sshd───bash───SCP SCP由BASH FORK出来
这个时候我们发出了CTRL+Z的SIGSTOP信号来STOP了进程SCP 然后使用bg命令来在后台进程
这个时候我们推出了SHELL进程那么
├─sshd───sshd───bash───SCP 
bash就没有了 SCP成了没有父亲的孤儿进程,LINUX系统所有的孤儿进程由INIT接管。

父进程对所有的子进程都是起着监控运行状态和结束后回收资源的作用,如果父进程在子进程运行
完成后没有回收其PCB,那么出现的是僵尸进程,所以我们写程序也需要使用WAITPID函数进行资源
回收。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-1993920/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/183770.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code