2017-08-28 8 views
1

Ich bin neu zu ansible und versuchte, meine mehrere ec2-Instanzen mit dem Konfigurations-Management-Tool zu konfigurieren.Für immer Knoten Aufgaben aus Shell-Skript mit Ansible auf ec2 instanses

Ich konnte es ausführen. Allerdings stecke ich am Ende der Klappe fest. Ich habe einen Shell-Skript (vom Textbuch ausgeführt werden), die weiteren Aufgabe nämlich darin hat:

forever start app.js 
forever start serverScripts.js 

Das Skript läuft, aber die App ist nicht mit immer instanziiert. Wenn ich für immer tun Liste zeigt es

„Prozesse nicht immer läuft“

aber Knoten Prozesse im Hintergrund läuft (siehe unten).

root 9725 65,0 6,1 933920 125432? Sl 17.35 00.02 /usr/bin/NodeJS app.js

Befehl im Textbuch verwendet:

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 

Bitte leite mich Laufen des Skripts in der exakt gleichen Art und Weise zu erreichen, für immer!

+0

Welcher Benutzer wie Sie Ihr Playbook als? Siehst du den forever-Prozess, wenn du versuchst, "forever list" als diesen Benutzer auszuführen? Kannst du dein Playbook und den Befehl, den du benutzt, um das Playbook aufzurufen? – kfreezy

+0

Wird als root ausgeführt. Ja, wenn ich es manuell auf dem Server ausführe, läuft es normal für immer. –

+0

wahrscheinlich könnte dies helfen: https://immortal.run/post/ansible/ – nbari

Antwort

0

Sie können die Forever-Prozesse mit forever list anzeigen, wenn Sie als derselbe Benutzer ausgeführt werden, der es gestartet hat. In diesem Fall ist es Root.

sudo su - root -c "forever list" 

Wenn Sie für immer wollen als ein anderer Benutzer auszuführen, setzen Sie die become_user auf etwas anderes in Ihrem Textbuch.

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 
    become_user: some_other_user