我正在尝试在 shell 脚本中启动以下命令并让它在后台运行:
npx tailwindcss -i ./static/src/input.css -o ./static/src/output.css --watch &
它在我的 shell 中工作,但是一旦我将它放入脚本中,它就不会运行。如果我去掉尾随,&
它将在脚本中运行,但我需要它在后台运行。知道为什么这个特定命令在从 shell 脚本调用时不会在后台运行吗?
答案1
您的脚本在为运行脚本而启动的 shell 中运行。在它启动的最后一个进程退出之前,该 shell 不会退出。
解决方案:不要运行您的脚本 - 从当前的 shell 中获取它。然而,这意味着只要程序在后台运行,您就需要保留该外壳。
真正的问题是,既然您正在从 npm 包运行命令并希望在后台运行它,那么这是否不适合在守护进程中运行。在您的例子中,node.js 的编写正是为了执行此操作,即 JavaScript 的守护进程执行。