既然是结合tp5,咱当然要借鉴tp5的优势

# tp5自定义命令行

这个需要自己看tp5的官方文档,直接搜索就能找到,自己添加command.php文件,我的如下

~~~

/**

* Time: 13:55

*/

return [

'iss\crontab\command\IssServer',

'iss\crontab\command\IssClient',

];

~~~

但是要特别注意,文件的位置,放在目录application/command.php处,或者在入口文件中指定了配置文件目录,则将command.php放在配置目录下的根目录(必须的),因为查看源码如下:

![](https://box.kancloud.cn/e57894dd0b2f39521630a30c49e08fa5_1178x529.png)

然后再添加个实例类来调用extend扩展中的服务端类,这样写只是为了规范些

~~~

namespace iss\crontab\command;

use think\console\Command;

use think\console\Input;

use think\console\Output;

class IssServer extends Command {

protected function configure(){

$this->setName('IssServer')->setDescription('定时任务服务端');

}

/**

* 启动服务端服务

* @return \lib\crontab\IssServer

*/

protected function execute(Input $input,Output $output){

$issServer= new \lib\crontab\IssServer();

if($issServer){

$output->writeln('服务端启动成功!');

}else{

$output->writeln('Sorry,服务端启动失败!');

}

}

}

?>

~~~

然后linux中cd到项目根目录,因为我们要用到项目中cli跟入口文件think,所以必须先cd到项目根目录

运行命令

`php think IssServer`

就可以将服务端实例化了,就不必在服务端类里自己new对象了

有些同学可能在安装的时候没有将php变量加入到环境变量中,系统不能识别php命令

可以运行如下命令(/usr/local/php是服务器上php的安装目录)同样可以启动

`/usr/local/php/bin/php -c /usr/local/php/etc/php.ini think IssServer`

这样就可以在扩展中轻松使用tp5的数据库连接等特性

# 设置程序进入后台作为守护进程一直运行

![](https://box.kancloud.cn/2cba32c28d2c88b60f9306f71d2f162f_1288x603.png)

首先是配置server的daemonize属性并加载到服务器启动中,开启守护进程,接着在linux窗口运行启动命令时在命令后加“&”即可,例如

`php think IssServer &`

~~~

class IssServer{

private $serv;

private $debug = true;

public function __construct()

{

$config = config('crontab.server');

//extract($config);

$this->serv = new \swoole_server($config['host'], $config['port']);

$this->serv->set(array(

'daemonize' => $config['daemonize'], //设置程序进入后台作为守护进程运行

'dispatch_mode' => $config['dispatch_mode'], //指定数据包分发策略。1 => 轮循模式,收到会轮循分配给每一个worker进程 2 => 固定模式,根据连接的文件描述符分配worker。这样可以保证同一个连接发来的数据只会被同一个worker处理 3 => 抢占模式,主进程会根据Worker的忙闲状态选择投递,只会投递给处于闲置状态的Worker

'task_worker_num' => $config['task_worker_num'], //服务器开启的task进程数。

'task_ipc_mode' => $config['task_ipc_mode'], //设置task进程与worker进程之间通信的方式。

'log_file' => $config['log_file']

));

$this->serv->on('Start', array($this, 'onStart'));

$this->serv->on('WorkerStart', array($this, 'onWorkerStart'));

$this->serv->on('Connect', array($this, 'onConnect'));

$this->serv->on('Receive', array($this, 'onReceive'));

~~~

服务器php 启动命令_服务端的cli方式运行相关推荐

  1. 服务器php 启动命令_禁止php运行服务器命令行函数的安全配置

    服务器安全配置很重要, 特别是对外出售空间的服务器一定要禁用危及服务器安全的函数, 否则后果不堪设想. 禁用方法如下: 打开/etc/php.ini文件, 搜索定位到这行 disable_functi ...

  2. 在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳?

    https://www.zhihu.com/question/35013918 在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳? 这个心跳包除了告知服务端我在线,还有其他作用吗?比 ...

  3. oracle11g服务器端下载,安装_oracle11G_客户端_服务端_链接_oracle

    在开始之前呢,有一些注细节需要注意,oracle11G_客户端_和_服务端, 分为两种   一种是  开发者使用    一种是  BDA  自己使用(同时也需要根据自己 PC 的系统来做_win7_与 ...

  4. 修改服务器端数据库,问道1.6 开区 服务器环境配置 数据库修改 服务端启动教程...

    重启数据库 service mysqld restart 重启服务器 shutdown -r now 查看防火墙状态:chkconfig --list iptables 永久开启防火墙: chkcon ...

  5. 83998 连接服务器出错_服务端 TCP 连接的 TIME_WAIT 问题分析与解决

    民工哥技术之路 写在开头,大概 4 年前,听到运维同学提到 TIME_WAIT 状态的 TCP 连接过多的问题,但是当时没有去细琢磨:最近又听人说起,是一个新手进行压测过程中,遇到的问题,因此,花点时 ...

  6. haproxy服务启动命令_安装haproxy和haproxy命令

    1.安装haproxy CentOS自带了haproxy,但可能版本比较老.可以在IUS源上找到最新稳定版的haproxy. cat </etc/yum.repos.d/ius.repo [iu ...

  7. 传奇怎么修改服务器启动天数,传奇服务端加入有天数会员系统方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 传奇服务端加入有天数会员系统方法 会员系统主要用来对一些加盟玩家的特殊控制.可以用IP地址,登录帐号,角色名,之类的为标志控制. 相关脚本命令 设置会员类 ...

  8. 我的世界服务器java启动脚本_教程/服务器启动脚本

    警告 因为这是Wiki的一个条目,可以在任何时间内被任何人编辑,因此建议你不要完全使用这个脚本,而是将其当作编写脚本的指导手册看待. 这是一个可供参考的Minecraft启动脚本示例,并使用GNU/L ...

  9. 尝试编辑虚拟磁盘时服务器遇到错误,虚拟磁盘Linux服务端测试及故障处理有哪些呢?...

    1.查看系统负载情况 在服务端命令窗口下执行w命令可得到三组数据(例如 0.40 0.30 1.20),分别为系统前一分钟.前5分钟.前15分钟负载情况,一般负载情况在2以下基本正常,如果长时间高于3 ...

最新文章

  1. 【MySQL】数据库2- MySQL表的增删改查(基础)
  2. 联想输入快捷键_UG软件F8快捷键和笔记本电脑F8快捷键冲突的解决方法
  3. Qlik与百度开放云建立战略联盟,让中国企业通过强大的可视化分析看到数据背后的整个故事...
  4. 使用rsync实现数据实时同步备份--实战
  5. 混合模型的推荐算法(ACM暑校-案例学习)
  6. Intellij idea 自动生成serialVersionUID
  7. 移动支付到底有多美?
  8. 2017 ACM-ICPC乌鲁木齐网络赛 B. Out-out-control cars(几何)
  9. vue项目之不一样的axios封装(+防抖函数)
  10. SpringBoot整合定时任务(在线Cron表达式生成器)
  11. ajax上传form表单图片,php form表单ajax上传图片方法
  12. SQLITE测试工具
  13. 游戏对战平台研究终结
  14. [转]c#对象的浅拷贝和深拷贝
  15. 集合:List接口:ArrayList,LinkedList Set接口:HashSet
  16. 红外循迹传感器PID循迹算法
  17. CDN工作原理及其在淘宝图片业务中的应用
  18. 系统安全与应用【上】
  19. 绘图---带你熟练操作PS工具栏
  20. 软件开发需要学习什么

热门文章

  1. 属性类:Properties
  2. 唤醒控件曾经拥有的能力
  3. 【转】logback 常用配置详解(序)logback 简介
  4. [译]JavaScript:ES6中的模板字符串简介
  5. MATLAB调用Python自定义函数(类、函数等) Python调用MATLAB
  6. 深度学习基础(四)优化函数(梯度下降函数)
  7. 双极型adc与stm32_关于STM32 双ADC同步规则转换两路数据的问题?
  8. 51单片机实现三位十进制数加减乘除运算
  9. c语言编辑输出后汉字乱码,为什么这个程序会输出汉字乱码
  10. Android OOM的解决方式