Add*_*son 0 linux queue sequential
我正在尝试找到或实现一个简单的解决方案,可以按顺序排队Linux shell命令,以便一次执行一个.以下是标准:
最初我认为at命令可以做我想要的,但唯一的事情是它不会按顺序执行命令.
我正在考虑使用以下部分在python中实现我自己的解决方案:
fcntl锁定文件上的模块编写python脚本,以确保只运行1个脚本实例听起来这听起来有用吗?我不知道如何处理的唯一竞争条件是当脚本的第一个实例检查目录并看到它是空的时,在解锁锁定文件之前,新命令排队并调用脚本的新实例.当新脚本看到文件被锁定时,它将退出.然后原始脚本将解锁文件并退出.
有什么东西已经做到了,所以我不必自己实现吗?
使用命名管道,即FIFO:
mkfifo /tmp/shellpipe
Run Code Online (Sandbox Code Playgroud)
启动一个shell进程,其输入来自管道:
/bin/sh < /tmp/shellpipe
Run Code Online (Sandbox Code Playgroud)
当Web服务器想要执行命令时,它会将其写入管道.
sprintf(cmdbuf, "echo '%s' > /tmp/shellpipe", command);
system(cmdbuf);
Run Code Online (Sandbox Code Playgroud)