欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最轻量级的Ruby后台任务

程序员文章站 2022-07-04 18:38:45
...
普通情况下ruby调用系统命令行的过程是堵塞的,无论是用system还是``或是exec。
system命令会在命令执行成功后返回true,失败返回nil
不过如果system调用的命令以&结尾,ruby进程不会被阻塞,不管前面的命令是否执行成功都会立即返回true。
所以,史上最轻量级的ruby后台任务诞生了:
system('echo "Hello" > ./system.log && sleep 5 && echo "Hooopo" > ./system.log 2>&1  &')


ps:经测试,使用``的话即使命令行后面加上&也是会阻塞ruby进程的。

`echo "Hello" > ./system.log && sleep 5 && echo "Hooopo" > ./system.log 2>&1  &`