有一个Node JS等同于Bash exec吗?

时间:2017-07-27 20:36:34

标签: node.js

有时我想退出NodeJS脚本并将终端的所有控制权移交给另一个程序,就像Bash的exec命令一样。下面使用简单的t.sh:

显示此行为
#!/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.spawnchild_process.exec以及process.exit。除非我遗漏了某些内容,否则这些内容似乎无法执行经典的Bash exec。救命啊!

1 个答案:

答案 0 :(得分:1)

节点没有对必要API的任何内置访问权限(因为它们不能移植到Windows),但是有一些包提供本机绑定:execpenative-exec。< / p>