[02:07] <violetzijing> cherrot, 我们的垃圾 API，我觉得是有 bug 在里面，breaker 报了 timeout，timeout 时间是 10s
[02:08] <violetzijing> ImAdPEr|wORkInG, cherrot qiao contrun[m] 大佬们早上好啊
[02:09] <qiao> violetzijing: ImAdPEr|wORkInG cherrot 大佬们早上好
[02:33] <ImAdPEr|wORkInG> qiao: violetzijing morning.
[02:58] <cherrot> qiao: violetzijing ImAdPEr|wORkInG contrun[m] 大佬们早
[02:58] <ImAdPEr|wORkInG> cher
[02:58] <ImAdPEr|wORkInG> cherrot: morning.
[03:00] <cherrot> violetzijing: https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html 这个讲的很不错
[03:01] <violetzijing> cherrot, cool
[03:03] <cherrot> violetzijing: 线上系统这三样都不能少
[03:04] <ImAdPEr|wORkInG> cherrot: bang bang da!
[03:04] <cherrot> ImAdPEr|wORkInG: me me da!
[03:15] <violetzijing> cherrot, metrics, logging 我们之前有，现在刚做上 tracing
[03:16] <violetzijing> cherrot, tracing 真的太有用了，尤其是微服务这种串一串的调用
[04:46] <ImAdPEr|wORkInG> contrun[m]: https://github.com/firecracker-microvm/firecracker/issues?q=is%3Aissue+is%3Aopen+amd+label%3A%22Feature%3A+CPU+Support%3A+AMD%22
[04:47] <contrun[m]> ImAdPEr|wORkInG: 明天就搞 不搞不是人
[04:48] <contrun[m]> ImAdPEr|wORkInG: 我可能已经是 zio contributor 了 还有一个 issue 休了那个 就搞 不搞不是人
[04:48] <ImAdPEr|wORkInG> contrun[m]: 3700x ji ke nan nai
[04:49] <contrun[m]> ImAdPEr|wORkInG: 明天就搞 不搞不是人 他妈的一个星期过得太快了 是时候gan huo le
[04:49] <ImAdPEr|wORkInG> contrun[m]: agree.
[04:50] <contrun[m]> ImAdPEr|wORkInG: 感觉你司的代码 已经一百年没有更新了
[04:50] <ImAdPEr|wORkInG> contrun[m]: why update? I have all code in my laptop.
[04:50] <ImAdPEr|wORkInG> contrun[m]: and there is no need to push.
[04:51] <contrun[m]> ImAdPEr|wORkInG: So all your work is done at home?
[04:51] <ImAdPEr|wORkInG> contrun[m]: office.
[04:52] <ImAdPEr|wORkInG> contrun[m]: Is zio really better than monix?
[04:52] <contrun[m]> ImAdPEr|wORkInG: 那他妈的怎么在你笔记本上面
[04:52] <ImAdPEr|wORkInG> contrun[m]: I use laptop in office.
[04:52] <contrun[m]> ImAdPEr|wORkInG: zio是一个很大的框架 取代 io monad 以及其他
[04:52] <ImAdPEr|wORkInG> contrun[m]: in the inner office.
[04:52] <ImAdPEr|wORkInG> contrun[m]: which is cooler.
[04:53] <contrun[m]> ImAdPEr|wORkInG: task 只是一个副产品
[04:53] <ImAdPEr|wORkInG> contrun[m]: I see.
[04:54] <ImAdPEr|wORkInG> contrun[m]: comes with a kafka stream adopter?
[04:54] <contrun[m]> ImAdPEr|wORkInG: zio 包含了 io monad，tasks，queue，schedules
[04:54] <ImAdPEr|wORkInG> contrun[m]: Try c100k with zio's tasks.
[04:55] <ImAdPEr|wORkInG> contrun[m]: and compare it with monix's task.
[04:55] <contrun[m]> ImAdPEr|wORkInG: zio 有zstreams 好像有个 把 Kafka 流 转成 zstream 的
[04:55] <ImAdPEr|wORkInG> contrun[m]: Nice to know.
[04:56] <contrun[m]> ImAdPEr|wORkInG: 而且用 zio 实现一套 actor 框架是很简单的
[04:56] <ImAdPEr|wORkInG> contrun[m]: won't be easy.
[04:56] <contrun[m]> ImAdPEr|wORkInG: 我艹 坐过站了
[04:57] <ImAdPEr|wORkInG> contrun[m]: glad to know.
[04:58] <contrun[m]> ImAdPEr|wORkInG: 一切并发问题都是 队列问题 有了 zqueue fibers 还有 zschedule 实现 actor 还不简单
[05:11] <ImAdPEr|wORkInG> contrun[m]: 写出来了?
[05:11] <ImAdPEr|wORkInG> contrun[m]: akka stream还有一堆压力反馈啥的, 很多细节不好实现
[05:12] <contrun[m]> ImAdPEr|wORkInG: zio queue 已经有这些功能了
[05:13] <contrun[m]> 他妈的 我电脑好像卡死了 有啥补救方法
[05:36] <ImAdPEr|wORkInG> contrun[m]: 厉害了啊
[05:38] <contrun[m]> ImAdPEr|wORkInG: zio-actors 还什么都没有    https://github.com/zio/zio-actors/tree/master/src/main/scala/zio/actors
[05:38] <ImAdPEr|wORkInG> contrun[m]: 加油.
[05:59] <Tricky> list
[06:01] <Tricky>  /msg alis list *-topic*
[06:13] <contrun[m]> 有没有什么好的库 可以将我输入 yesterday  变成 epoch time 昨天凌晨到今天凌晨 ，last week 亦然
[06:20] <ImAdPEr|wORkInG> contrun[m]: 没见过.
[06:30] <contrun[m]> 我有 个蛋疼需求 过x分钟杀掉某个内存泄漏的程序 再启动他  不想用 pid 文件  有什么简单的 shell 脚本？
[06:31] <contrun[m]> 这个程序一定要在前台  不然直接 suspended
[06:41] <ImAdPEr|wORkInG> contrun[m]: while : \n do timeout 1000 <your_exe_here>; done
[06:42] <contrun[m]> ImAdPEr|wORkInG: 如何杀掉一个 while true; do xxx; done
[06:44] <ImAdPEr|wORkInG> 杀父进程
[06:44] <ImAdPEr|wORkInG> 不要用while true
[06:44] <ImAdPEr|wORkInG> 要用, while [ ! -e /tmp/stop ]
[06:45] <ImAdPEr|wORkInG> 创建这个文件, 然后杀, 然后删除这个文件. 这个世界如此完美
[06:46] <contrun[m]> 没用 父进程对 sigterm 没有作用了
[06:51] <contrun[m]> 可能是因为 父进程是一个 interactive shell 如果子进程有 signal handler 父进程会把 signal 转给子进程
[06:51] <contrun[m]> while true; do htop; done
[06:52] <contrun[m]> 因为在一个终端下  按下 c-c 不知道把信号发给谁 ？
[06:53] <contrun[m]> 但是 父进程也没法知道子进程设立了哪些 signal handler 了啊
[06:53] <contrun[m]> while true; do htop; done  发给父进程zsh没有鸟用
[06:55] <ImAdPEr|wORkInG> contrun[m]: sigkill
[06:55] <contrun[m]> ImAdPEr|wORkInG: gracefully
[06:55] <ImAdPEr|wORkInG> contrun[m]: sleep 3; sigkil  :-b
[06:56] <contrun[m]> sigkill 会杀了当前终端
 不要用while true
 要用, while [ ! -e /tmp/stop ]
[06:56] <ImAdPEr|wORkInG>  
[06:56] <ImAdPEr|wORkInG> contrun[m]: gracefully
[06:56] <ImAdPEr|wORkInG> contrun[m]: 这还不够稳?
[06:58] <contrun[m]> 稳个屁  我要知道如何给子进程有 signal handler 的父进程发信号ImAdPEr|wORkInG
[07:01] <ImAdPEr|wORkInG> contrun[m]: 直接给ppid发sigterm就是
[07:01] <ImAdPEr|wORkInG> contrun[m]: 你已经做到了.
[07:01] <ImAdPEr|wORkInG> contrun[m]: 不信你自己写个程序验证.
[07:01] <ImAdPEr|wORkInG> contrun[m]: 父进程如果没有信号处理, 直接退出, 子进程还活着.
[07:01] <contrun[m]> ImAdPEr|wORkInG: 已经验证了  没用
[07:01] <contrun[m]> while true; do htop; done  发给父进程zsh没有鸟用
[07:01] <ImAdPEr|wORkInG> contrun[m]: 子进程变成孤儿进程, 挂在systemd下面.
[07:01] <ImAdPEr|wORkInG> contrun[m]: 那是因为zsh的signal handler就是这么处理的.
[07:02] <ImAdPEr|wORkInG> contrun[m]: zsh的gracefully想要等子进程.
[07:02] <ImAdPEr|wORkInG> contrun[m]: 你自己写个程序验证就知道了.
[07:03] <contrun[m]> while true; do htop; done  发给父进程bash没有鸟用
[07:03] <ImAdPEr|wORkInG> contrun[m]: 那是因为bash的signal handler就是这么处理的. 父进程肯定收到这个sigterm了.
[07:03] <ImAdPEr|wORkInG> contrun[m]: 你写一个打印出sigterm的程序就知道了.
[07:06] <contrun[m]> ImAdPEr|wORkInG: 子进程 htop 根本就没有收到 sigterm
[07:06] <ImAdPEr|wORkInG> contrun[m]: 你的问题是, 稳个屁  我要知道如何给子进程有 signal handler 的父进程发信号
[07:06] <ImAdPEr|wORkInG> contrun[m]: 问题是如何给父进程发signal
[07:06] <ImAdPEr|wORkInG> contrun[m]: 不是吗?
[07:07] <contrun[m]> ImAdPEr|wORkInG: sh的gracefully想要等子进程?
[07:07] <ImAdPEr|wORkInG> contrun[m]: 我告诉你, 直接给父进程发, 父进程能收到, 也能调用signal handler
[07:07] <ImAdPEr|wORkInG> contrun[m]: 那我就不知道了
[07:07] <contrun[m]> ImAdPEr|wORkInG: 子进程都没有收到 sigterm 他会自己退出？
[07:08]  * contrun[m] uploaded an image: screenshot-2019-07-26-15-08-01.png (12KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/LgBvoaRvWZZqQvZpqzZAJbuA >
[07:08] <ImAdPEr|wORkInG> contrun[m]: sh的实现我不知道. 但是只要你想, 肯定可以这样啊
[07:10] <contrun[m]> zsh的gracefully想要等子进程    你自己打的    子进程htop都没有收到 sigterm 他会自己退出？  如果 父进程在等 子进程推出 他可能不给 子进程发 sigterm ？
[07:17] <contrun[m]> ImAdPEr|wORkInG: https://paste.ubuntu.com/p/KR7prnhGVk/    /tmp/trap_test 没有任何东西
[07:31] <contrun[m]> https://unix.stackexchange.com/questions/149741/why-is-sigint-not-propagated-to-child-process-when-sent-to-its-parent-process  接收信号的已经是 foreground process group
[07:31]  * contrun[m] uploaded an image: screenshot-2019-07-26-15-31-13.png (19KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/SpgIYneIgBdHqOOoYEOXZZnw >
[07:32] <contrun[m]> zsh的foreground process group已经是子进程htop  但是 为什么 kill 2908 好像 没有杀掉 htop
[07:52] <contrun[m]> 更加奇怪了  为什么按下 c-c 父进程可以收到 signal   但 kill 父进程却收不到
[07:57]  * contrun[m] uploaded an image: screenshot-2019-07-26-15-57-03.png (11KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/dQEGXvIOiPFVtLRfcDovZFTy >
[07:59] <contrun[m]> kill -9 杀了子进程 父进程也没了 终端出现奇怪字符
[08:15] <contrun[m]> 不管了 干活了
[08:17] <contrun[m]> 但是 c-c 和 sigint 肯定是不一样的 我在终端里起一个 ssh  ssh 打开 htop  按下 c-c 会杀掉 htop  kill -2 会杀掉 ssh
[11:13] <ledzep2014> 冒泡防踢
[11:17] <cherrot_> ledzep2014: 这是哪带来的坏习惯
[11:24] <yhm12345> 冒泡
[11:25] <yhm12345> 大家好
[11:26] <ledzep2014> yhm12345: 新人爆女装照
[11:26] <yhm12345> 我不是新人好巴
[11:28] <ledzep2014> 🤣
[11:29] <ledzep2014> 有emoji输入法用吗？老是百度很烦的
[11:29] <ledzep2014> kubuntu
[11:57] <yhm12345> 同问
[12:38] <ledzep2014> https://sm.ms/api/upload?inajax=1&ssl=1
[12:38] <ledzep2014> https://i.loli.net/2019/07/26/5d3af4241ec8834080.png