下面的脚本永远不会打印
done
,除非您手动按回车键。开发机器是 osx,服务器是 ubuntu 22.04。
这是一个重启远程Web服务器的脚本。 Web 服务器使用
bun.js
javascript 服务器,远程命令首先杀死任何 bun
进程,然后使用 nohup
启动服务器。
function remote() {
ssh -l root -p $PORT $HOST "source ~/.bash_profile && $1"
}
echo " restarting server"
remote "killall -r bun || true && nohup /apps/run_server.ts > /logs/server.txt 2>&1 < /dev/null &"
echo " done"
/apps/run_server.ts
内容,带有shebang的javascript(打字稿)代码:
#!/usr/bin/env bun
import 'my_server'
run_myserver()
&
适用于整行,包括killall 命令。尝试将 nohup 放入子 shell 中
.. && (nohup /apps/run_server.ts > /logs/server.txt 2>&1 < /dev/null &)