如何从子进程脚本运行打包的可执行node.js应用程序?

时间:2018-12-20 21:16:46

标签: node.js bash shell child-process zeit-pkg

我正在尝试从bash脚本运行可执行文件。可执行文件是与zeit-pkg打包在一起的nodejs应用程序。

我在做什么:

运行子进程。子进程杀死父进程,用新版本替换该应用程序,然后再次运行该应用程序。

const fileName = './run_install';
const dir = 'temp';
const runInstall = spawn(
  fileName, [],
  {
    cwd: process.cwd() + '/' + dir,
    detached: true,
    stdio: 'ignore'
  }
);
runInstall.unref();

所有内容均适用于javascript文件和npm start

我的./run_install脚本文件javascript

sleep 1s
kill -9 $(pgrep node)
sleep 1s
mkdir ../old_versions
mv ../server.js ../old_versions/server.js.old
mv server.js ../
cd ../
npm start & rm -r ./temp & exit 0

但是当我尝试对可执行文件执行相同的操作时,新版本的应用程序无法启动。行。/imac并被忽略。

我的./run_install脚本可执行文件

#!/bin/bash
sleep 1s
kill -9 $(pgrep imac)
sleep 1s
mkdir ../old_versions
mv ../imac ../old_versions/imac.old
mv imac ../
mv rollback ../
cd ../
chmod 755 ./imac
chmod 755 ./rollback
./imac &
rm -r ./temp & exit 0

如何运行可执行文件?

0 个答案:

没有答案