7 votes

Comment exécuter iPython Notebook en tant que service ?

Quelle serait la meilleure façon "standard" de créer un launchd script à exécuter python notebook ?

J'aimerais que le service démarre à la connexion et qu'il soit facile de démarrer, arrêter et redémarrer le serveur à partir d'un terminal.

8voto

Cedric H. Points 1403

Au final, j'ai créé le fichier .plist suivant. Il est chargé automatiquement au démarrage et démarre un fichier jupiter et le maintenir en vie.

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>KeepAlive</key>
          <true/>
          <key>Label</key>
          <string>cern.chernals.ipython</string>
          <key>ProgramArguments</key>
          <array>
              <string>/usr/local/bin/jupyter-notebook</string>
          </array>
          <key>RunAtLoad</key>
          <true/>
          <key>StandardErrorPath</key>
          <string>/Users/chernals/Library/LaunchAgents/jupyter-notebook.stderr</string>
          <key>StandardOutPath</key>
          <string>/Users/chernals/Library/LaunchAgents/jupyter-notebook.stdout</string>
              <key>KeepAlive</key>
              <true/>
      </dict>
      </plist>

1voto

Je suis un débutant sous MacOS et j'ai trouvé la réponse acceptée très utile. Je l'ai modifié pour qu'il ne lance pas de navigateur au démarrage et qu'il démarre dans le répertoire ~/jupyter où je stocke la plupart de mes carnets de notes.

Pour référence future, la façon de faire ce démarrage est de mettre les données xml dans un fichier dans le répertoire ~/Library/LaunchAgents, par exemple ~/Library/LaunchAgents/org.jupyter.notebook.plist.

La liste de contrôle que j'ai obtenue est la suivante.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>org.jupyter.notebook</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/jupyter-notebook</string>
        <string>--no-browser</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/Users/rickard/Library/LaunchAgents/org.jupyter.notebook.stderr</string>
    <key>StandardOutPath</key>
    <string>/Users/rickard/Library/LaunchAgents/org.jupyter.notebook.stdout</string>
    <key>KeepAlive</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/rickard/jupyter</string>
</dict>
</plist>

Je n'ai pas encore trouvé le moyen de ne pas avoir à coder en dur le répertoire personnel de l'utilisateur -- l'option EnableGlobbing ne fonctionne que dans ProgramArgument, et il n'y a pas d'expansion de variable d'environnement, donc pour l'instant il faut qu'elle soit là.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X