【发布时间】: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