Как запустить конкретную команду при запуске всего сценария параллельно - PullRequest
0 голосов
/ 16 октября 2019

У меня есть скрипт, который строит изображения, отправляет их в докер-хаб и проверяет все ошибки. Но моя основная цель - запустить определенную команду, например " 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)

1 Ответ

0 голосов
/ 17 октября 2019

Хорошо, я только что добавил эту строку

узел nohup server.js> output.log &

Внутри моей переменной: start_node ='nohup node server.js> output.log &'

, и он работает так, как я хотел.

Если у кого-нибудь есть лучшее решение, которое я хотел бы увидеть. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...