image frame

Klus Futuredark's Blog

宜言饮酒,与子偕老。琴瑟在御,莫不静好。

Linux完整dpkg服务程序

背景

一个旧版本的服务部署包存在bug————如果网管界面服务启动的阶段(监听IP/端口)挂了,只会把启动服务的那个协程干掉,而不是进行重试。

在机器重启时,docker会自动启动服务程序,然而此时系统的网络环境可能还未初始化完成,就可能导致ip绑不上,从而导致了bug被发现。

但是外场客户不愿意升级新版本,我们就想了一个trick的补丁方式:写一个开启自启程序脚本,在上电开机后3分钟运行检测网管服务是否正常启动,否则自动重启一下。

阅读更多...

Linux命名管道

前言

众所周知,Linux的IPC主要有多种方式,本文主要记录命名管道的使用。

使用

  1. 调用 mkfifo() 创建具名管道文件
  2. 读写两端分别调用 fopen() 打开
  3. 调用 fwrite() 写入;调用 fread() 读取
  4. 调用 unlink() 销毁具名管道文件

阻塞

  1. 如果以只写打开,则会阻塞写入直到有读取;如果以只读打开,则会阻塞直到有写入;如果以读写打开,那么就不会阻塞。
  2. 写入直到缓冲区满则阻塞;读取直到缓冲区空则阻塞。

SwordOffer把数字翻译成字符串

题目

给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

草图

阅读更多...
  • Copyrights © 2019-2024 Klusfq
  • Visitors: | Views: