0
有些時候我想退出一個NodeJS腳本並將終端的所有控制交給另一個程序,就像Bash的exec
命令一樣。這種行爲如下所示使用簡單t.sh:
是否存在與Bash exec相當的Node JS?
#!/bin/bash
sleep 5; exec /usr/bin/vlc
我們可以開始t.sh
然後按CTRL-Z暫停過程中,檢查PID:
ps -elf |grep t.sh |grep -v grep |awk '{print $4}' # prints 10554
然後我們就可以恢復過程使用fg
,在VLC啓動後,再次按ctrl-z並檢查VLC的PID:
ps -elf |grep vlc |grep -v grep |awk '{print $4}' # prints 10554
我們可以看到VLC已經使用PID代替了t.sh
。我非常想要與Node JS相同的行爲,但我還沒有發現它的魔力。
像這樣的東西將是完美的:process.exit('/usr/bin/vlc');
當然,這是行不通的。我已經以其他身份使用child_process.spawn
和child_process.exec
和process.exit
。除非我錯過了一些東西,否則這些東西似乎無法做到經典的Bash exec
。幫幫我!
謝謝,喬希! 「不能在Windows上工作」不是一個交易斷路器,因爲該應用永遠不會部署到該環境。在其他情況下,exec允許提供一個權宜之計解決方案,讓我有時間將bash shell腳本遷移到NodeJS。 –
native-exec和execpe都從https://github.com/jprichardson/node-kexec出現。雖然native-exec更受歡迎,但execpe看起來更有能力。 –