开启服务

$ php Server.php

Ctrl + c 和 Ctrl + z 强制退出,都会保留子进程,kill不干净

删除所有Server.php同名的进程

ps -efww | grep Server.php | grep -v grep | cut -c 9-15 | xargs kill -9
  • “ps -efww”是查看所有进程的命令。这时检索出的进程将作为下一条命令“grep“的输入,注意要结束其它程序时,请将上面命令中的vim替换成其它程序名。
  • “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
  • “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
  • “xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。

查看端口

运行服务端的时候,可以查看端口是否运行

$ netstat -anp | grep 9501
tcp        1      0 0.0.0.0:9501            0.0.0.0:*               LISTEN      2402/php            
tcp       22      0 127.0.0.1:9501          127.0.0.1:49092         CLOSE_WAIT  2402/php

如果重复开启报错,杀死进程

$ kill -s 9 2402

其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。

连接服务端

使用telnet工具连接

$ telnet 127.0.0.1 9501
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
reactorId = 0, message = Hello, fd = 1
 $this->serv = new \swoole_server("0.0.0.0", 9501);
 $this->serv->set(array(
            'worker_num' => 4,  // 指定启动的worker进程数。建议开启的worker进程数为cpu核数的1-4倍。
            'daemonize' => false,
            'max_request' => 10000, // worker进程允许处理的最大任务数。 说明:设置该值后,每个worker进程在处理完max_request个请求后就会自动重启。设置该值的主要目的是为了防止worker进程处理大量请求后可能引起的内存溢出。
            'dispatch_mode' => 2,
            'debug_mode'=> 1,
        ));

worker_num是设置的进程数,我们可以通过命令查看是否是4个

$ ps aft | grep Server.php 
 2895 pts/1    Sl+    0:00  \_ php Server.php      # 因为我们这个是打开客户端的,这是客户端进程
 2896 pts/1    S+     0:00      \_ php Server.php  # 这个就是运行php Server.php 的主进程
 2898 pts/1    S+     0:00          \_ php Server.php
 2899 pts/1    S+     0:00          \_ php Server.php
 2900 pts/1    S+     0:00          \_ php Server.php
 2901 pts/1    S+     0:00          \_ php Server.php # 刚好4个子进程
 2927 pts/0    S+     0:00          \_ grep --color=auto Server.php