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函数进行资源
回收。

时间: 2024-10-10 19:59:18

SCP使用SIGSTOP后台运行并简单讨论孤儿进程僵尸进程的相关文章

暴风影音发新版 stormliv.exe仍后台运行

中介交易 SEO诊断 淘宝客 云主机 技术大厅 5月27日消息,暴风影音5月25日凌晨在网站上发布了最新的客户端软件,新版本文件名命名为Storm2009-0529.exe.这是"519断网事故"发生后暴风影音首次发布的更新版本. 不过据网易科技测试,新版本并未完全实现此前公开致歉时的承诺,特别是之前网民争议的焦点--stormliv.exe进程仍然在用户不知情的情况下一直驻留后台,即使关闭暴风影音软件,仍然让用户电脑保持与服务器交换数据. 网民不满暴风的"道歉"

PostgreSQL 10.0 preview 功能增强 - 后台运行(pg_background)

标签 PostgreSQL , 10.0 , 后台运行 , pg_background_launch , pg_background_result , pg_background_detach , pg_background 背景 当用户在管理数据库时,如果要在交互式界面跑一些QUERY,但是不知道QUERY要运行多久,担心网络问题或者其他问题导致终端断开,QUERY执行情况不明的话.就需要后台运行这个功能了. 后台运行在LINUX中也很常见,比如 nohup ls -la / >/tmp/re

【OS】Linux命令如何放到后台运行

[OS]Linux命令如何放到后台运行 linux命令后台运行    有两种方式:    1. command & : 后台运行,你关掉终端会停止运行    2. nohup command & : 后台运行,你关掉终端也会继续运行     一. 简介      Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想. 我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后

Activity后台运行一段时间回来crash问题的分析与解决

最近做项目的时候碰到一个棘手的问题,花了不少时间才找到原因并解决.特此记录这个被我踩过的坑,希望其他朋友遇到此问题不要调到这坑里去了. 问题描述:       1.背景:我的app中某个界面的Activity是继承FragmentActivity,因为此界面包含两个Fragment.这里我称为 FragmentA和FragmentB吧.在Activity中有个刷新按钮,用来刷新ViewPager当前Fragment内容的刷新.点击 Activity的刷新按钮之后,刷新按钮需要有简单的旋转动画,等

【原创】Linux 下程序后台运行相关问题总结

千言万语,不如实验来的直接...  基于sleep的小实验       首先通过实验直观感受一下后台服务的运行状况(请注意,前方高能,相关概念在更后面才有解释).  在命令行上以不同方式执行 sleep 确定登录 shell 和伪终端.  ? 1 2 3 4 5 6 7 8 9 10 11 12 [root@YOYO ~]# ps ajxf           PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND ...

exe后台运行 及python变exe 备忘

1.后台运行,用vbs很简单       set wscriptObj = CreateObject("Wscript.Shell") wscriptObj.run "1.exe",0 2.python变成exe     用的是py2exe 需要先建个引导例如test.py # mysetup.py from distutils.core import setup import py2exe setup(console=["1.py"]) 然后c

使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤-- 在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网:或者(2)你在执行了shell命令之后必须要关闭终端软件(例如SecureCRT).   那么你就需要以脱离终端的方式在后台运行这个shell命令. 方法如下: (1

Linux环境下如何让进程在后台运行

一. nohup / setsid / & 使用场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢? 我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程. 解决方法: 1.nohup 只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中.一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用>filename 2

Linux中如何让进程在后台运行

一. nohup / setsid / & 使用场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢? 我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程. 解决方法: 1.nohup 只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中.一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用>filename 2