2017-07-09 115 views
-1

我有一個cli應用程序使用vorpal寫在nodejs中,住在freebsd(v9.3)中,我需要知道是否有任何方法來阻止用戶退出此應用程序或不!我希望它像應用程序啓動時一樣,直到重新啓動或關閉系統後纔會退出。這是非常關鍵的,我的意思是無法以任何代價退出應用程序。 有沒有可能?防止nodejs應用程序退出

編輯: 這是我想要的:當我的程序啓動時,用戶不能退出程序,除了我自己的退出命令,所以我想以某種方式防止CTRL-Z,CTRL-C或任何其他類似的東西。我可以處理SIGINT和錯誤,但我的問題是「CTRL-Z」會觸發SIGSTOP信號,節點無法聽到它。我怎麼能禁用這個CTRL-Z和其他所有?或者有沒有其他解決方案可能在我的代碼中,甚至修改bsd?

+1

你看過這些模塊嗎? https://github.com/Unitech/pm2 https://www.npmjs.com/package/forever –

+0

試試https://immortal.run/freebsd/在FreeBSD開箱即用 – nbari

回答

0

有幾個方法可以做到這一點,取決於你問:使用外部工具來重新啓動退出或崩潰的過程(如Khauri麥克萊恩在評論說

1))。它們中的一些(我最喜歡的是PM2):

2)可以防止從的Node.js上離開的錯誤:Make node.js not exit on error,但請不要這樣做,這個答案解釋了爲什麼:https://stackoverflow.com/a/13049037/1206421。你也可以忽略這個模塊的Control-C按鍵:https://www.npmjs.com/package/ctrl-c(我沒有關注它),但是這看起來也是一個糟糕的主意。

無論如何,如果您正在使用的進程將被系統或其他用戶殺死(例如,使用kill -9),除了使用某些自動重啓服務(如上所述)之外,您無能爲力。我建議你開始使用它們。

+0

我想要沒有終端訪問權限,所以沒有kill -9等,只是當用戶登錄時,我的程序啓動,用戶不能訪問任何其他的東西。 我可以處理SIGINT和錯誤,但我的問題是「CTRL-Z」會觸發SIGSTOP信號,節點無法聽到它。我怎樣才能禁用此ctrl-z?也許在我的代碼,甚至修改bsd? –