моя серверная программа может рассматриваться как процесс, что означает S в выводе PS - PullRequest
0 голосов
/ 29 июня 2011

Вот моя серверная программа

#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/un.h>
#include<sys/types.h>
#include<unistd.h>
int main ()
{
int server_sockfd,client_sockfd;
int server_len,client_len;
struct sockaddr_un server_address;
struct sockaddr_un client_address;
unlink("server_socket");
server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);//created socket
server_address.sun_family=AF_UNIX;
strcpy(server_address.sun_path,"server_socket");
server_len=sizeof(server_address);
bind(server_sockfd,(struct sockaddr *)&server_address,server_len);//binded it
listen(server_sockfd,5);
while (1)
        {
 char ch;
 printf("server waiting\n");
 client_len=sizeof(client_address);
 client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);
 read(client_sockfd,&ch,1);
 ch++;
 write(client_sockfd,&ch,1);
 close(client_sockfd);

}

}

Я скомпилировал вышеуказанную программу следующим образом

 cc server.c -o server.o

когда я запускаю ps -el | grep server.o, я получаю следующий вывод

0 S  1000  4450  2228  0  80   0 -   965 skb_re pts/0    00:00:00 server.o

Я хочу знать, что означает S в приведенном выше выводе?

Ответы [ 2 ]

2 голосов
/ 29 июня 2011
  • S Отмечает процесс, который спит менее 20 секунд.
  • D Отмечает процесс на диске (или другой краткосрочный период), непрерывно) wait.
  • I Отмечает процесс, который находится в режиме ожидания (спит дольше 20 секунд).
  • L Отмечает процесс, ожидающий получения блокировки.
  • R Отмечает работоспособный процесс.
  • T Отмечает остановленный процесс.
  • W Отмечает незанятый поток прерывания.
  • Z Отмечает мертвый процесс («зомби»).

Источник

2 голосов
/ 29 июня 2011

Это значит «прерывистый сон». Вероятно, это означает, что он ожидает блокирующего системного вызова. В вашем случае этот системный вызов, скорее всего, accept или read.

ps(1)

Вот различные значения, которые s, stat и описатели состояния вывода (заголовок "STAT" или "S") будет отображаться опишите состояние процесса.

   D    Uninterruptible sleep (usually IO)
   R    Running or runnable (on run queue)
   S    Interruptible sleep (waiting for an event to complete)
   T    Stopped, either by a job control signal or because it is being traced.
   W    paging (not valid since the 2.6.xx kernel)
   X    dead (should never be seen)
   Z    Defunct ("zombie") process, terminated but not reaped by its parent.
...