作者 Hongli Lai 看着像是华人,可惜没找到文章的中文版本,于是就很土鳖地手翻了一遍。文章的措辞很口语化,因此意译为主。点击这里可以阅读原文。
在构建 Docker 容器时,我们需要注意子进程的“僵尸化”问题(PID 1 Zombie Reaping Problem)。这会导致不可预知的和看起来匪夷所思的问题。本文解释了这个问题,也解释了如何去解决,并提供了一种预构建方案:Baseimage-docker 。
#!/usr/bin/perl | |
use 5.010; | |
use warnings; | |
use strict; | |
use Geo::IP; | |
use Parse::Syslog::Line qw( parse_syslog_line ); | |
use Socket qw( getnameinfo NI_NUMERICHOST NI_NUMERICSERV ); | |
use POSIX qw( strftime ); | |
use AnyEvent; | |
use AnyEvent::Handle::UDP; |
<?php | |
/* Last Update : 20170208 ,Laravel 5.3 */ | |
return [ | |
/* | |
|-------------------------------------------------------------------------- | |
| Validation Language Lines | |
|-------------------------------------------------------------------------- | |
| | |
| The following language lines contain the default error messages used by |
sudo vim /etc/apt/sources.list | |
------------------------------------------------------------------------------------------------------ | |
deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse | |
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse | |
deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse | |
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse | |
------------------------------------------------------------------------------------------------------- | |
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse | |
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse |
如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等 | |
你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有一个4核或更多核的CPU,但我们合适的工具,例如 grep, bzip2, wc, awk, sed等等,都是单线程的,只能使用一个CPU内核。 | |
借用卡通人物Cartman的话,“如何我能使用这些内核”? | |
要想让Linux命令使用所有的CPU内核,我们需要用到GNU Parallel命令,它让我们所有的CPU内核在单机内做神奇的map-reduce操作,当然,这还要借助很少用到的–pipes 参数(也叫做–spreadstdin)。这样,你的负载就会平均分配到各CPU上,真的。 | |
BZIP2 |
### Editing ### | |
`Ctrl + Space` 基本代码完成(任意类的,方法的或者变量的名称) | |
`Ctrl + Shift + Enter` 补全当前语句 | |
`Ctrl + P` Parameter info (within method call arguments) | |
`Ctrl + Q` 快速查找文档 | |
`Ctrl + 鼠标滑过` 简明信息查看 | |
`Ctrl + F1` 在插入符号处显示错误或者警告信息 | |
`Alt + Insert` 生成代码...(Getters,Setters,Constructors) | |
`Ctrl + O` 重写方法 | |
`Ctrl + I` 实现方法 |
<?php | |
use GuzzleHttp\Client; | |
use GuzzleHttp\Exception\ConnectException; | |
use GuzzleHttp\Exception\RequestException; | |
use GuzzleHttp\Handler\CurlHandler; | |
use GuzzleHttp\HandlerStack; | |
use GuzzleHttp\Psr7\Request as Psr7Request; | |
use GuzzleHttp\Psr7\Response as Psr7Response; | |
use Psr\Log\LoggerInterface; | |
const MAX_RETRIES = 2; |
/************************************/ | |
基本命令 | |
C-x C-f 打开/新建文件 | |
C-x C-s 保存当前缓冲区 | |
C-x C-w 当前缓冲区另存为 | |
C-x C-v 关闭当前Buffer并打开新文件 | |
C-x i 光标处插入文件 | |
C-x b 切换Buffer | |
C-x C-b 显示Buffer列表 | |
C-x k 关闭当前Buffer |
作者 Hongli Lai 看着像是华人,可惜没找到文章的中文版本,于是就很土鳖地手翻了一遍。文章的措辞很口语化,因此意译为主。点击这里可以阅读原文。
在构建 Docker 容器时,我们需要注意子进程的“僵尸化”问题(PID 1 Zombie Reaping Problem)。这会导致不可预知的和看起来匪夷所思的问题。本文解释了这个问题,也解释了如何去解决,并提供了一种预构建方案:Baseimage-docker 。
在我之前的博文中,我描述了我是如何在容器中使用进程管理器的,并做了一些展开。但我还是觉得有必要针对 Laurent Bercot 开发的 S6 做更详尽的说明。
什么用 S6 而不是 Supervisor?