linux下的守護進程

關於守護進程,在此會介紹一下幾種:html

  1.screenpython

  2.supervisord(python)shell

 

 

 

一:Screen

  

開始使用Screen

簡單來講,Screen是一個能夠在多個進程之間多路複用一個物理終端的窗口管理器。Screen中有會話的概念,用戶能夠在一個screen會話中建立多個screen窗口,在每個screen窗口中就像操做一個真實的telnet/SSH鏈接窗口那樣。在screen中建立一個新的窗口有這樣幾種方式:session

1.直接在命令行鍵入screen命令ssh

[root@tivf06 ~]# screen

Screen將建立一個執行shell的全屏窗口。你能夠執行任意shell程序,就像在ssh窗口中那樣。在該窗口中鍵入exit退出該窗口,若是這是該screen會話的惟一窗口,該screen會話退出,不然screen自動切換到前一個窗口。spa

2.Screen命令後跟你要執行的程序。命令行

[root@tivf06 ~]# screen vi test.c

Screen建立一個執行vi test.c的單窗口會話,退出vi將退出該窗口/會話。3d

3.以上兩種方式都建立新的screen會話。咱們還能夠在一個已有screen會話中建立新的窗口。在當前screen窗口中鍵入C-a c,即Ctrl鍵+a鍵,以後再按下c鍵,screen 在該會話內生成一個新的窗口並切換到該窗口。code

screen還有更高級的功能。你能夠不中斷screen窗口中程序的運行而暫時斷開(detach)screen會話,並在隨後時間從新鏈接(attach)該會話,從新控制各窗口中運行的程序。例如,咱們打開一個screen窗口編輯/tmp/abc文件:xml

[root@tivf06 ~]# screen vi /tmp/abc

以後咱們想暫時退出作點別的事情,好比出去散散步,那麼在screen窗口鍵入C-a d,Screen會給出detached提示:

暫時中斷會話

暫時中斷會話

半個小時以後回來了,找到該screen會話:

[root@tivf06 ~]# screen -ls
There is a screen on:
        16582.pts-1.tivf06      (Detached)
1 Socket in /tmp/screens/S-root.

從新鏈接會話:

[root@tivf06 ~]# screen -r 16582

看看出現什麼了,太棒了,一切都在。繼續幹吧。

你可能注意到給screen發送命令使用了特殊的鍵組合C-a。這是由於咱們在鍵盤上鍵入的信息是直接發送給當前screen窗口,必須用其餘方式向screen窗口管理器發出命令,默認狀況下,screen接收以C-a開始的命令。這種命令形式在screen中叫作鍵綁定(key binding),C-a叫作命令字符(command character)。

能夠經過C-a ?來查看全部的鍵綁定,經常使用的鍵綁定有:

C-a ? 顯示全部鍵綁定信息
C-a w 顯示全部窗口列表
C-a C-a 切換到以前顯示的窗口
C-a c 建立一個新的運行shell的窗口並切換到該窗口
C-a n 切換到下一個窗口
C-a p 切換到前一個窗口(與C-a n相對)
C-a 0..9 切換到窗口0..9
C-a a 發送 C-a到當前窗口
C-a d 暫時斷開screen會話
C-a k 殺掉當前窗口
C-a [ 進入拷貝/回滾模式

 

疑難雜症:

  Q1:解決screen Cannot open your terminal '/dev/pts/1'問題

問題描述:

   userA首先登陸系統,使用screen開啓了一個session,而後detach這個窗口。

   userB而後登陸系統,經過su - userA 變成userA,而後使用screen -r 恢復以前detached窗口,這時系統報以下錯誤:

   Cannot open your terminal '/dev/pts/1' - please check.

解決方法:

   userB在 su - userA之後,執行以下命令便可:

   script /dev/null

 轉自:解決screen Cannot open your terminal '/dev/pts/1'問題

相關文章
相關標籤/搜索