如何在Symfony2中停止资产观察?

时间:2013-10-15 10:14:22

标签: symfony assetic

我跟着the Symfony2 guide以dev模式自动转储资产文件:

  • 我在我的开发配置文件中将use_controller参数更改为false
  • 我开始了--watch例程。

    $ php app/console assetic:dump --watch
    

我怎么能停止观看?

3 个答案:

答案 0 :(得分:2)

命令仅在文件更改时才查找文件更改。那么你就停止命令 - 不再自动重新生成资产。

在linux上它的典型ctrl + c或ctrl + x

P.S。来自DumpCommand

的一些代码
while (true) {
    try {
        foreach ($this->am->getNames() as $name) {
            if ($this->checkAsset($name, $previously)) {
                $this->dumpAsset($name, $output);
            }
        }

        // reset the asset manager
        $prop->setValue($this->am, array());
        $this->am->load();

        file_put_contents($cache, serialize($previously));
        $error = '';
    } catch (\Exception $e) {
        if ($error != $msg = $e->getMessage()) {
            $output->writeln('<error>[error]</error> '.$msg);
            $error = $msg;
        }
    }
    sleep($input->getOption('period'));
}

答案 1 :(得分:1)

就像@forgottenbas指出代码在无限循环中运行所以它不是真正背景工作者,而只是一个占用你的shell的工人,直到外部力量干预。

通常,开发人员可以终止它占用的进程或shell会话。

在OSX ctrl + c 发送SIGKILL

在Windows中,它似乎在Window shell中有所不同:http://en.wikipedia.org/wiki/Kill_(command)#Microsoft_Windows

这绝对是操作系统,或者更确切地说,取决于外壳。

答案 2 :(得分:1)

如果您已经产生了linux后台进程,例如:

$ php app/console assetic:dump --watch &

你必须杀死正在运行的php进程