我想創建一個別名:創建啓動兩個進程的bash別名?
- 變化目錄
- 開始Redis的
- 啓動節點應用
我能夠像一個創建別名要做到這一點如下:
alias startSP='cd mydirectory; redis-server;node myApp.js'
問題是,node myApp.js
作品不會運行,直到我殺死redis。有什麼方法可以啓動兩個進程而無需等待第一個完成?
我應該試圖打開第二個選項卡來執行此操作嗎?
我想創建一個別名:創建啓動兩個進程的bash別名?
我能夠像一個創建別名要做到這一點如下:
alias startSP='cd mydirectory; redis-server;node myApp.js'
問題是,node myApp.js
作品不會運行,直到我殺死redis。有什麼方法可以啓動兩個進程而無需等待第一個完成?
我應該試圖打開第二個選項卡來執行此操作嗎?
我沒有辦法測試這一點,但加上「&」來運行CMD在後臺應該工作,即
alias startSP='cd mydirectory ; redis-server & node myApp.js'
你可能會希望添加第二&,即
alias startSP='cd mydirectory ;redis-server & node myApp.js &'
因爲這會返回提示給你,你可以繼續在你的命令行工作。
編輯
有很多方式來殺死進程,搜索這裏S.O.如果你幸運的話,你可以做
pkill redis-server
pkill node ...? hm....
有很多方法可以讓這個錯誤,所以你會做得更好,檢查你的具體情況。
如果我打算做這一切的時候,我會變成startPS
成捕獲的PID功能,從使用「&」返回,保存那些PID的環境,然後有一個單獨的功能可以確認那些PID是否存在,並且他們很有可能是正確的程序,那麼就發出殺手。
還要注意,kill -15
是殺程序的首選方式,給它機會,關閉文件等
IHTH。
相反的;
,其依次分隔兩個過程,你可以使用&
,其在後臺啓動一個進程,然後在前臺運行,另:
alias startSP='cd mydirectory ; redis-server & node myApp.js'
爲什麼不添加功能到您的個人資料呢?
startSP(){
cd /your/directory
redis-server && node myApp.js
}
的& &將開始使節點myApp.js等待Redis的服務器啓動
這樣做比使用別名有什麼好處? –
真棒!如果我返回到命令行,我將如何在完成後終止進程? –
@AbeMiessler:看我的編輯。你會在這裏找到很多關於S.O的討論。用於便捷的方式來殺死應用程序VS快速和骯髒的方法。 – shellter