pm2: Advanced, production process manager for Node.js


//run.js

const { exec } = require('child_process')

exec('hexo s',(error, stdout, stderr) => {

    if(error){

         console.log(`exec error: ${error}`)

         return

    }

    console.log(`stdout: ${stdout}`);

    console.log(`stderr: ${stderr}`);

})

pm2 delete all

删除所有进程

pm2 start run.js

启动run.js fork模式

pm2 start run.js -i 2

启动run.js 创建两个进程

待续

📅 2019-10-28

hexo 配置的一些相关问题笔记

发布时间不对的问题

细心的小伙伴会发现我的博客有些文章居然发布日期比更新日期还要晚,这是因为我的时区没有配置好的原因。

修改 _confing.yml下的timezone

timezone: Asia/Shanghai

📅 2019-10-28

首先下载UEFI版

下载链接在官方QQ群里面

TIPS: 直接在群文件里面下载可能会因为各种原因中断下载,建议登录QQ群空间里面,再使用迅雷下载。

接下来为转载的操作

image

mount挂载


mount {{根挂载点}} /mnt

第一次尝试(2018.9.21 9:05)

自动清除磁盘安装,未找到/分区,手动分区尝试中。

手动分区,发现格式好奇怪,看不懂,格式化尝试中。

更新: 好像是开启了LVM的原因,尝试不开启LVM。清除整个磁盘安装

第二次尝试清除整个磁盘安装 (2018.9.21 9:15)

磁盘情况,分区情况如下,但是无法进入系统


好像联网安装就成功了????

📅 2019-10-28

一个利用PHP群发微信消息的工具。上一篇讲到了如何用Server酱推送消息到个人微信,这篇我们一起来了解一下Server酱的进化版——pushbear,一对多微信消息推送

Server酱的局限

  • ==首先这里的SCKEY与userID只是简单的一对一的关系,但其实如果做成一对多更好。因为这样便可以群发通知 #801400==

  • ==她这儿的的分享链接里面包含了很多个人敏感的信息,而其实这在微信的标准里面是不安全的。 #801900==

老规矩,PushBear官网(https://pushbear.ftqq.com/admin/#/)

PushBear

使用流程

1.使用微信扫码登录网站

扫码登录

这个比Server好的地方就是它不需要使用github账号登录了,直接扫码即可。

2.新建通道

新建通道

这里的通道的意思你可以把它,看作一个群。每一个通道负责群发消息到绑定这个管道 的微信。

3.绑定用户到通道

绑定用户

这个也特别的方便,直接扫描订阅二维码即可

4.发送测试消息

发送测试消息

打开测试表单啦,然后测试

测试表单

5.使用PHP群发消息到微信

一个函数就可以了,


function weixin_notify($header,$content){

    $SENDKEY = "1218-f6*************0b98d0a2e10fdd2";//微信通知KEY

    file_get_contents('https://pushbear.ftqq.com/sub?sendkey='.$SENDKEY.'&text='.urlencode($header).'&desp='.urlencode($content));

}

6.效果展示

预览消息

消息内容

总结

原理什么的,这次就不解释了,上一篇已经解释过了。

现在我们已经可以利用Server酱发送服务器报警消息至开发者微信。

然后再利用PushBear群发业务消息到用户微信。完美对接业务以及管理逻辑。

是不感觉特别的方便?

📅 2019-10-28

我们都知道,微信开发者工具是没有linux版的,还是有点难受。好在有大神迁移了。

1. 下载项目


git clone https://github.com/cytle/wechat_web_devtools.git

2. 进入目录


cd wechat_web_devtools

3. 自动下载最新 nw.js , 同时部署目录 ~/.config/微信web开发者工具/


./bin/wxdt install

最好先切换npm淘宝源npm太慢使用淘宝npm镜像

4. 运行


./bin/wxdt

7. 错误排除

1. 提示“小程序重启耗时过久,请确认业务逻辑中是否有复杂运算或死循环”

解决方案:apt-get install wine-binfmt

📅 2019-10-28

如果你需要及时收到服务器的运行报告,如果你嫌装客户端端软件太麻烦。那么你可以试试这个,调用WEB API推送消息到你的微信;我想这可能会是一个不错的装逼姿势。

Server酱

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。说人话?就是从服务器推报警和日志到手机的工具。

Server酱工作原理图

工作原理图

大致解释一下步骤:

  1. 登录Server酱官网,使用==github #800000==账号登录

  2. 绑定一个微信(你的或者你想通知的人的)

  3. 获取到SendKey(它根据这个==Sendkey #800500==区分目标)

  4. 在你发起消息的服务器或者软件调用API发送GET请求

  5. 手机微信上收到消息

技术要求

  1. 需要有一个GitHub账号,没有可以注册一个。

  2. 需要有一个微信账号,没有可以注册一个。

  3. 需要关注一个公众号,没有可以关注一下。

  4. 需要会使用Get请求,任何语言。

操作流程

1.进入官网,使用GitHub账号登录。开始绑定微信。就是使用微信扫描之后(会叫你关注一个公众号),然后在这个界面点击<检查结果并确认绑定>

微信绑定

绑定成功之后是这样子的

绑定成功

2.获取SendKey(在发送消息页面)。

SCKEY

3.首先我们来测试一下能否发送成功

在这个在线发送工具下输入你想发送的数据。

在线发送工具

4.打开微信看看效果

消息预览

消息展示

注意这个界面不要随便分享,因为这个链接里面就有你的SCKEY,如果你不想突然收到别人莫名其妙的消息,那还是自己看就好了。

5.php调用WEB API发送消息(一定得是PHP?不,你用表单都可以,It‘s up to you.)

对了,其实这个消息内容是支持markdown的哦(很好的一个设计),如果不知道什么是markdown的话。。。去百度?

写成一个函数

function weixin_notify($SCKEY,$header,$content){

	file_get_contents('https://sc.ftqq.com/'.$SCKEY.'.send?text='.urlencode($header).'&desp='.urlencode($content));

}

然后你再需要发送服务器警告的地方调用函数即可

ServerChan 工作原理分析

如果你打算做一个类似的平台的话。你首先有两个东西是必不可缺的。1,一个服务器后端。2,一个通过微信认证了的服务号

  1. 首先你得关注公众号

  2. 你扫描之后绑定微信,其实是一个区分用户的过程,来记录你的userID。比如:百词斩官方公众号通过你发特定的字符串来区别。

  3. 它的服务端通过SCKEY与userID做一个映射,然后根据你的SCKEY来发给不同的人。

  4. 服务端开放一个接口,接收你的SCKEY、title、content。然后再调用微信官方接口发送客户消息。

  5. 用户收到消息

局限与完善

  • ==首先这里的SCKEY与userID只是简单的一对一的关系,但其实如果做成一对多更好。因为这样便可以群发通知 #801400==

  • ==她这儿的的分享链接里面包含了很多个人敏感的信息,而其实这在微信的标准里面是不安全的。 #801900==

📅 2019-10-28

前言

本文使用jQuery修改typecho让其在文章编辑页内支持CTRL + S保存文章草稿,typecho的版本为1.2 (18.10.23).

为什么需要?

由于个人博客使用的typecho,在编辑文章的过程中经常习惯性的点击CTRl + S,然后就会非常不友好的提示了这个。

2019-10-28T06:59:58.png

这对追求优雅的本宅来说,简直无法容忍。难道我要因此弃用typecho?这也太夸张了。那就来发挥我modify的能力吧,毕竟闲余折腾是我的一大乐趣,而且自己动手,丰衣足食嘛!

心路历程

  1. 首先,我知道这个理论上绝对可行,因为我用过很多此类功能。

  2. 经查阅资料,chrome的适配最好,当然我也没考虑别的浏览器,因为我眼中的浏览器只有两种,chrome和不是chrome。随便一提:不用chrome的程序员不是优雅的程序员。

  3. 分析实现方法,大致分为两步,监听ctrl+s时间和模拟点击保存草稿按钮

  4. 选型方面,由于typecho内置jquery,因此采用最快捷的办法

实现过程

确认页面是否支持jQuery

为了避免重复引入,我们可在console中输入$,根据提示来确认是否已有jQuery

确认是否已有jQuery

如图,则表示已有jQuery。

找到编辑文章的php页面

嗯,就是这个路径typecho/admin/write-post.php

找个合适位置放script

请在文件末尾插入一个script节点,以防止在jquery定义之前使用或者在if语句中未应用。

监听ctrl + S

在script节点中插入以下代码


$(window).keydown(function(event) {

        if (event.ctrlKey && event.which == 83) {

            alert("Ctrl+S pressed.");

            return false;

        } else {

            return true;

        }

    });

刷新编辑文章页,提示以下内容则监听成功。

好像暗黑背景有点看不清?

模拟点击保存

通过源代码分析,我们可以发现,保存文章的按钮id为btn-save。现在我们修改代码里面的内容如下


$(window).keydown(function(event) {

        if (event.ctrlKey && event.which == 83) {

            $("#btn-save").click();

            return false;

        } else {

            return true;

        }

    });

大功告成

2019-10-28T07:33:26.png

📅 2019-10-28
windows控制台字体分享

为什么有些字体无法设置为控制台字体?

字体设置

因为windows对控制台的字体,有着极其严格的要求,只有满足要求的字体才能够被设置。

windows字体要求

原文已经找不到了,内容如下

windows字体要求

推荐的字体

Microsoft.YaHei.Mono

microsoft_yahei_mono字体是一款有着高辨识度的微软字体,字形清晰美观可读性强,电脑屏幕显示效果好,看着十分舒服,非常适合编程员使用

效果预览

2019-10-14T03:00:01.png

参考资料

  1. 自定义 Windows PowerShell 和 cmd 的字体

  2. Microsoft Support: Console (CMD) Fonts

📅 2019-10-25