檢視原始碼 mix cmd (Mix v1.16.2)
執行指定的命令。
例如,您可以呼叫外部命令,例如 make
$ mix cmd make
在命令前加上 --cd
旗標,您也可以強制命令在特定目錄中執行
$ mix cmd --cd "third-party" make
此任務在 umbrella 應用程式中也很有用,可以在每個子應用程式上執行命令
$ mix cmd pwd
您可以使用 mix do
搭配 --app
選項,來限制 cmd 在哪些應用程式中執行
$ mix do --app app1 --app app2 cmd pwd
每當命令以非零狀態退出時,任務就會中止。
此任務會自動重新啟用,因此可以使用不同的引數呼叫多次。
命令列選項
--app
- 限制在指定的應用程式中執行命令。此選項目前已棄用,建議使用mix do --app
--cd
- (自 v1.10.4 起) 執行命令的目錄
僵屍作業系統程序
請注意,Erlang VM 在關閉時不會終止子程序。因此,如果您使用 mix cmd
啟動長時間執行的程序,然後關閉 VM,則這些子程序很可能會不會隨 VM 一起終止。
一個解決方案是確保子程序監聽標準輸入,並在標準輸入關閉時終止。我們在 Port
模組文件中的「僵屍作業系統程序」中詳細討論了這個主題。