Process

大寫字母的篩選過程

  • November 23, 2015

我注意到,在執行screen用它標識的程序時,它實際上以大寫字母顯示。

Linux Debian Wheezy。

這裡有一個例子,我 ssh’in 進入一台機器,執行screen -S test然​​後在top那裡執行。

me@host:~$ ps x
 PID TTY      STAT   TIME COMMAND
4177 ?        S      0:00 sshd: me@pts/0
4178 pts/0    Ss     0:00 -bash
4260 ?        Ss     0:00 SCREEN -S test
4261 pts/1    Ss     0:00 /bin/bash
4813 pts/1    S+     0:00 top
5891 pts/0    R+     0:00 ps x
me@host:~$

這種大寫有什麼理由嗎?我想我在首都還沒有見過這樣的其他節目。

Screen 以小寫二進制形式存在於文件系統中:

me@host:~$ which screen
/usr/bin/screen
me@host:~$ l /usr/bin/screen
-rwxr-sr-x 1 root utmp 402K Sep  4 05:07 /usr/bin/screen
me@host:~$ file /usr/bin/screen
/usr/bin/screen: setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x035fa489e79088829da70a87252e4da70fc4a6bf, stripped
me@host:~$

如果這是公認的行為,或者可能是我不知道的新趨勢?

開發人員選擇這樣做是為了簡化殺死雜散screen程序。請參閱源儲存庫:在版本 2.3(1991 年 2 月 25 日)和 3.1(1991 年 9 月 9 日)之間進行了更改,其中包括來自CHANGES的以下評論:

when the socket has been removed, send a SIGCHLD to the poor SCREEN 
process and it will try to recover. then try a 'screen -r' again.
all the socket stuff lives now in an extra file.

並來自自述文件

screen -list
screen -ls
 Show all available sockets. If there are (DEAD???) sockets, you may consider 
 removing them. If there are sockets missing, you may send a SIGCHLD to its
 process 'SCREEN' and the process will re-establish the socket. (think of 
 someone cleaning /tmp thoroughly).

如果他們沒有如此徹底地更改名稱,則存在使用者發出錯誤流程信號的風險。

引用自:https://unix.stackexchange.com/questions/244846