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函式進行資源
回收。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 殭屍程式,孤兒程式
- 殭屍程式和孤兒程式
- Perl程式:殭屍程式和孤兒程式
- PHP 多程式之孤兒和殭屍簡單講解PHP
- 子程式、孤兒程式,殭屍程式, init程式
- Go Exec 殭屍與孤兒程式Go
- 從一道面試題來學習前臺程式和後臺程式、孤兒程式和殭屍程式面試題
- 孤兒程序和殭屍程序
- 殭屍程式,孤兒程式,wait,exit,execl等函式使用要點AI函式
- UNIXC002 程式資源的回收、孤兒程式和殭屍程式
- linux系統程式設計之程式(三):程式複製fork,孤兒程式,殭屍程式Linux程式設計
- 什麼是殭屍程式,如何找到並殺掉殭屍程式?
- 檢視並殺死殭屍程式
- 殭屍程式
- Linux程式管理、程式建立、執行緒實現、殭屍程式Linux執行緒
- 程序物件、殭屍程序與孤兒程序、守護程序、互斥鎖物件
- 聊聊 PHP 多程序模式下的孤兒程序和殭屍程序PHP模式
- scp 在後臺執行
- fork和殭屍程式
- Linux 殭屍程式Linux
- 【系統】 殭屍程式
- 殺死殭屍程式
- Linux中殭屍程式是什麼意思?怎麼檢視殭屍程式?Linux
- 檢視 Linux 殭屍程式Linux
- Linux殭屍程式處置Linux
- 使用nohup讓程式永遠後臺執行
- Linux 中殭屍程式詳解Linux
- Linux 系統中殭屍程式Linux
- Linux如何殺掉殭屍程式Linux
- Linux scp 後臺執行傳輸檔案Linux
- jenkins後臺程式執行Jenkins
- 將程式在後臺執行和殺掉後臺的程式
- 後臺執行以及保持程式在後臺長時間執行
- scp後臺靜默執行(使用expect自動輸入密碼)密碼
- linux程式前臺-後臺執行Linux
- 使用nohup命令讓linux程式後臺執行Linux
- Linux系統殭屍程式詳解Linux
- scp 手動輸入密碼後後臺執行的方法密碼