rabbitmqctl stop [pid_file]
用于停止運作RabbitMQ的Erlang虛拟機和RabbitMQ服務應用。如果指定了pid_file,還需要等待指定程序的結束。其中pid_file是通過調用rabbitmq-server啟動RabbitMQ服務時建立的,預設情況下存放于Mnesia目錄中,可以通過RABBITMQ_PID_FILE這個環境變量來改變存放路徑。注意,如果是rabbitmq-server –detach啟動的RabbitMQ服務則不會生成pid_file這個檔案。
示例如下:
rabbitmqctl shutdown
用于停止運作RabbitMQ的Erlang虛拟機和RabbitMQ服務應用。執行這個指令會阻塞直到Erlang虛拟機程序的退出。如果RabbitMQ沒有成功關閉,則會傳回一個非零值。這個指令和rabbitmqctl stop的不同的是,它不需要指定pid_file而可以阻塞等待指定程序的關閉。
rabbitmqctl stop_app
停止RabbitMQ服務應用,但是Erlang虛拟機還是處于運作狀态。此指令優先執行其他管理操作(這些管理操作需要先停止RabbitMQ應用),比如rabbitmqctl reset。
rabbitmqctl start_app
啟動RabbitMQ應用。此指令典型的用途是在執行了其他管理操作之後,重新啟動之前停止的RabbitMQ應用,譬如rabbitmqctl reset。
rabbitmqctl wait [pid_file]
等待RabbitMQ應用的啟動。它會等到pid_file的建立,然後等待pid_file中的所代表的程序啟動。當指定的程序沒有啟動RabbitMQ應用而關閉時将會傳回失敗。
rabbitmqctl reset
将RabbitMQ節點重置還原到最初狀态,包括從原所在的叢集中删除此節點,從管理資料庫中删除所有的配置資料,如已配置的使用者、vhost等,以及删除所有的持久化消息。執行rabbitmqctl reset指令前必須停止RabbitMQ應用(比如先執行rabbitmqctl stop_app)。
rabbitmqctl force_reset
強制将RabbitMQ節點重置還原到最初狀态。不同于rabbitmqctl reset,rabbitmqctl force_reset指令不論目前管理資料庫的狀态和叢集配置是什麼,會無條件地重置節點。它隻能在資料庫或叢集配置已損壞的情況下才可使用。與rabbitmqctl reset指令一下,執行rabbitmqctl force_reset指令前必須先停止RabbitMQ應用。
rabbitmqctl rotate_logs {suffix}
訓示RabbitMQ節點輪換日志檔案。RabbitMQ節點會将原來的日志檔案中的内容追加到“原始名稱+字尾”的日志檔案中,然後再将新的日志内容記錄到新建立的日志中(與原日志檔案同名)。當目标檔案不存在時,将會重新建立。如果不指定suffix,那麼則日志檔案隻是重新打開而不會進行輪換。
示例如下所示,原日志檔案為[email protected]和[email protected],輪換日志之後,原日志檔案中的内容就被追加到[email protected]和 [email protected]日志中,之後重建立立[email protected]和[email protected]檔案用來接收新的日志。
rabbitmqctl hipe_compile {directory}
将部分RabbitMQ代碼用HiPE(HiPE是指High Performance Erlang ,是Erlang版的JIT)編譯,并且将編譯後的.beam檔案(beam檔案是Erlang編譯器生成的檔案格式,可以直接加載到Erlang虛拟機中運作的檔案格式)儲存到指定的檔案目錄中。如果這個目錄不存在則會自行建立。如果這個目錄中原本有任何.beam檔案,則會在執行編譯前被删除。如果要使用預編譯的這些檔案,需要設定RABBITMQ_SERVER_CODE_PATH這個環境變量來指定hipe_compile調用的路徑。