【问题标题】:Unable to quit Asterisk CLI using exit or quit无法使用 exit 或 quit 退出 Asterisk CLI
【发布时间】:2016-06-14 20:50:01
【问题描述】:

我使用以下命令启动了 Asterisk CLI:

asterisk -vvvvvvc

当我尝试使用 exit 或 quit 退出 CLI 时,我看到以下错误:

*CLI> exit
No such command 'exit' (type 'core show help exit' for other possible commands)
*CLI> quit
No such command 'quit' (type 'core show help quit' for other possible commands)

我可以使用^C 退出 CLI。为什么退出和退出不起作用?

【问题讨论】:

    标签: linux command-line-interface asterisk exit


    【解决方案1】:

    正如错误消息所述,没有“退出”或“退出”命令。但是在 Asterisk wiki 中有一个条目讨论如何从 CLI 中阻止 Asterisk:https://wiki.asterisk.org/wiki/display/AST/Stopping+and+Restarting+Asterisk+From+The+CLI

    您应该使用的命令是“core stop”(但是请注意,这实际上会杀死星号,而不仅仅是 shell)并且您有一些可用的选项:

    *CLI> help core stop
    core stop gracefully           -- Gracefully shut down Asterisk
    core stop now                  -- Shut down Asterisk immediately
    core stop when convenient      -- Shut down Asterisk at empty call volume
    

    在任何情况下,通过使用 -c 标志启动星号,您并不是将其作为服务启动,而是在前台启动,这意味着如果您希望 Asterisk 继续运行,您必须让 shell 保持打开状态。

    您应该在没有 -c 标志的情况下启动它,然后使用 -r 连接到它:https://wiki.asterisk.org/wiki/display/AST/Connecting+to+the+Asterisk+CLI

    然后您可以使用 ^C 退出“远程 shell”。 Asterisk 将继续在后台运行。我个人喜欢使用 daemontools 来启动和监督服务:http://cr.yp.to/daemontools/svc.html

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      您应该首先启动asterisk 守护进程。然后连接到控制台。:

      启动守护进程很简单:

      $>asterisk
      

      然后你就可以连接到控制台了:

      $>asterisk -rvvvvvv
      

      我不相信有任何使用 asterisk -c 的优雅退出。

      【讨论】:

      • core stop gracefully 在停止星号服务后退出控制台。然后按照您列出的命令进行操作。 asterisk -c 实际上在前台启动了一个进程。无论如何,您的综合解决方案和接受的答案更有意义。 +1
      【解决方案3】:

      如果你是在前台运行,如果你启动了Asterisk如:

      asterisk -gcvvvvvvvvv
      

      如果你尝试退出命令,它不会起作用,因为你在前台运行。

      尝试连接到后台运行的 Asterisk 控制台,然后使用退出或退出:

      [root@localhost asterisk]# asterisk -rvvv
      
      localhost*CLI> exit
      

      -r:连接到后台运行的 Asterisk 并显示 Asterisk CLI

      -v:详细命令。添加更多‘v’:s 以获得更多消息。

      输出:

      星号干净地结束 (0)。执行最后一分钟清理

      检查星号是否正在运行:

      [root@localhost asterisk]# ps -ef | grep asterisk
      

      停止 Asterisk 进程:

      cli> core stop now
      

      启动 Asterisk 服务:

       [root@localhost asterisk]# service asterisk start
      

      停止 Asterisk 服务:

       [root@localhost asterisk]# service asterisk stop
      

      【讨论】:

        猜你喜欢
        • 2012-07-09
        • 2014-10-14
        • 1970-01-01
        • 2020-07-11
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多