【问题标题】:How to run specific command while running all the script parallel如何在并行运行所有脚本时运行特定命令
【发布时间】:2020-02-13 07:09:06
【问题描述】:

我得到了构建图像的脚本,将它们推送到 docker hub 并检查所有错误。 但我的主要目的是运行特定命令,例如“node server.js”,然后开始运行脚本命令。

我希望它放在同一个脚本文件中。

现在我正在做的是打开 2 个终端,从 第一个终端 运行命令 'node server.js' 开始应用程序。 并从 第二个终端 运行脚本。

我想要的是配置脚本中的“node server.js”命令在后台运行,让脚本同时继续。

现在这是我的脚本,当脚本开始运行命令 os.system(start_node) 时,脚本停止运行到其他命令。 所以我的问题是如何运行此命令并让脚本在不打开 2 个终端的情况下继续运行,并在 1 个终端节点 server.js 中运行,第二个脚本没有命令 os.system(start_node)

#!/usr/bin/env python3
#Before running this script need to start the app 'node server.js'
import os
import sys
os.chdir ("/opt/new-test-app")

start_node = 'node server.js'
npm_test = 'npm test'
npm_output = '  8 passing'
image = 'docker build -t test/new-test-app-new:latest .'
test = 'curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8081'
docker_login = 'cat /cred/cred.txt | docker login --username test --password-stdin'
docker_push = 'docker push alexkocloud/new-test-app-new:latest'

os.system(start_node)


os.system(npm_test)

if npm_output == 0:
    print ("npm test not succesfully passed")
    sys.exit()
else:
    print('npm test successfuly passed with "8 passing"')

if os.system(test) == 0:
    print('HTTP Status Code 200 OK')
else:
    print('ERROR CODE')
    sys.exit()

os.system(image)

os.system(docker_login)
os.system(docker_push)

sys.exit(0)

【问题讨论】:

  • 您的脚本是bash 脚本还是Python 脚本?要在后台启动node 服务器,只需在命令后添加一个空格和&
  • python 3.7 ,我需要在脚本中编写它而不是单个命令。

标签: python node.js linux shell automation


【解决方案1】:

好的,我所做的只是添加了这一行

nohup node server.js > output.log &

在我的变量中: start_node = 'nohup node server.js > output.log &'

它正在按我的意愿工作。

如果有人有更好的解决方案,我很乐意看到。 谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2011-03-06
    • 2015-09-28
    • 2010-12-19
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多