J'ai commencé, mais ça ne démarre pas!

Exemple: démarrer Apache2

fabric.py


from fabric.api import env, sudo


def servers():
    env.hosts = ["b13t.net"]


def startd():
    sudo("service apache2 start")

Ou écrire, en coquille

$ fab servers startd

Si tu fais

[b13t.net] Executing task 'startd'
[b13t.net] sudo: service apache2 start

[b13t.net] out:  * Starting web server apache2
[b13t.net] out: httpd (pid 20130618) already running
[b13t.net] out:    ...done.
[b13t.net] out: 


Done.
Disconnecting from b13t.net:65537... done.

Cependant, même si vous entrez réellement avec ssh et ps ax, apache2 n'existe pas, et même si l'état du service apache2 n'est pas en cours d'exécution, vous ferez l'expérience du désespoir de ce monde.

Alors, comment vous débarrasser du désespoir?

python


def startd():
    sudo("service apache2 start", pty=False)

Si vous écrivez pty = False, vous serez heureux sans désespoir. Je ne suis pas sûr car je ne sais pas lire l'anglais, http://stackoverflow.com/questions/6379484/fabric-appears-to-start-apache2-but-doesnt http://docs.fabfile.org/en/1.6/api/core/operations.html#fabric.operations.run Si vous lisez ici, est-ce que le terminal virtuel lorsque pty = True perd des informations?

Si fabtools est pip install et qu'un utilisateur avec des privilèges suffisants est spécifié à l'avance dans env.user, il semble que ce qui suit démarre également. (Non vérifié)

python


from fabtools import service
def startd():
    service.start("apache2")

Recommended Posts

J'ai commencé, mais ça ne démarre pas!
J'ai introduit le noir dans vscode, mais il n'est pas automatiquement formaté
Lorsque j'essaye de créer Apache SSL, cela ne démarre pas.
J'ai commencé Python
J'ai commencé Docker
[Streamlit] Je l'ai installé
J'ai commencé à analyser
Je me suis demandé si Python 3.4 était plus rapide, mais c'était plus lent
Quand j'essaye de pousser avec heroku, ça ne marche pas
J'ai commencé PYNQ (2) -Overlay self-made-