0%

我们使用 unix 服务器目前管理服务的方式,基本上是使用systemd来进行管理,所以这边简单的说明一下如何编写一个简单的systemd服务脚本。

阅读全文 »

NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。

阅读全文 »

JetBrains 公司旗下的 IDEA 功能都十分强大,深受各种编程语言相关的程序员的喜爱。

正常情况下 JetBrains 公司的每个 IDE 分为Ultimate(企业付费版本)Community(社区免费)两个版本。大多数情况下,社区免费版本已经够用,只是在某些情况下例如c/c++开发则无社区版本,同时社区版本对一些插件无法支持。

这时候我们将希望能够使用Ultimate版本,能够更快捷的进行开发。

我们可以选择购买 Ultimate 授权,如果购买的是一年的订阅,则将会获得一年的更新支持,同时能够得到当前版本的永久回退授权,只是过期之后不能享受新版本的升级。

另外, JetBrains 公司为了表达对开源项目的支持。只要你拥有一个符合条件的开源项目,你或者你的团队就可以免费使用 JetBrains 公司旗下所有的 Ultimate 版本的 IDE 开发工具,即全家桶的使用权 1 年,如果到期了可以继续申请。

阅读全文 »

netcat,简写为 nc,是 unix 系统下一个强大的命令行网络通信工具,用于在两台主机之间建立 TCP 或者 UDP 连接,并提供丰富的命令进行数据通信。nc 在网络参考模型属于应用层。使用 nc
可以做很多事情:建立连接发送数据包监听端口扫描端口,处理 ip4ip6,和 telnet 不同,nc 会区分错误输出和标准输出,telnet 则都是标准输出。

阅读全文 »

通过 Windows 实现端口转发。本文为参考转发文章

使用Portproxy模式下的Netsh命令即能实现Windows系统中的端口转发,转发命令如下:

1
netsh interface portproxy add v4tov4 listenaddress=[localaddress] listenport=[localport] connectaddress=[destaddress]
阅读全文 »

Bazel - a fast, scalable, multi-language and extensible build system

在使用 bazel 许久之后,开始做一下记录,以记录一些奇奇怪怪的处理方式(?)。

阅读全文 »

使用 docker-compose 管理本地容器组,是非常方便的手段,但是最近遇到一个 bug,决定使用 docker stack /swarm 替代 docker-compose 。

命令行生成二维码可以试试 echo "二维码内容" | qrencode -o - -t UTF8

事情是这样的,在 docker-compose.yaml 内定义了 network.aliases 之后,在测试的时候,其他容器能够正常通过 aliases 对其进行访问,但是,到了实际部署的时候,很容易失败,例如重启之后,或者某个容器意外或者手动重启之后,都有可能导致该情况,导致很湿郁闷。

遂,在查找资料之后,决定替换掉 docker-compose

Ps:docker-compose 的配置 depends_on 只会控制控制启动顺序,并不会等待所需容器启动成功之后再启动下一 容器
简单来说,启动容器数据库之后会马上启动容器应用,并不在乎应用容器需要数据库容器才能正常运行,此时可能会造成 应用 容器无法找到数据库而意外退出。

阅读全文 »

承接自 kHttpd 项目。

由于 kHttpd 项目使用了 libevent 开源库,其中某些特性导致使用上面不太方面(仅仅指的是我个人而言),所以重新开发了本项目。

功能说明

  1. http server 实现, http server 服务端功能,使用线程池为每个连接进行处理,所以每个请求都可以阻塞(但是并不建议,除非某种特定的场景,例如进行http代理服务,必须等到对方回应,不使用 libevent 其中一个原因)。

  2. WebSocket server 实现,当前项目实现了WebSocket server端代码,可以使用 c/c++ 愉快的开发WebSocket项目,同时WebSocket服务端也支持http server,也就是同一个端口同时使用WebSocket server 以及 http server,使得更方便一些。使用WebSocket server的情况下,请根据实际情况,加大线程数量以及监听数量,否则可能造成后续连接被阻塞。

  3. CGI 功能实现,目前实现 CGI 调用 php,可以使用php作为动态脚本进行开发,不过现在还未实现 phpPOST模式,即还未将 php body数据传入给CGI

阅读全文 »