So führen Sie iPython Notebook als Dienst aus

7

Was wäre der beste "Standard" Weg, um ein launchdSkript zum Ausführen zu erstellen python notebook?

Ich möchte, dass der Dienst beim Anmelden startet und der Server einfach von einem Terminal aus gestartet, gestoppt und neu gestartet werden kann.

Cedric H.
quelle

Antworten:

7

Am Ende habe ich die folgende .plist-Datei erstellt. Es wird beim Start automatisch geladen und startet ein jupiterNotebook und hält es am Leben.

<?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>
Cedric H.
quelle
2
Ich habe ein Skript geschrieben, das einen solchen Startagenten automatisch konfiguriert. Schau es dir hier an .
Nathanielobrown
1

Ich bin ein MacOS-Neuling und fand die akzeptierte Antwort sehr hilfreich. Ich habe es so geändert, dass beim Start kein Browser gestartet wird und auch im Verzeichnis ~ / jupyter gestartet wird, in dem ich die meisten meiner Notizbücher speichere.

Zum späteren Nachschlagen können Sie die XML-Daten in einer Datei im Verzeichnis ~ / Library / LaunchAgents ablegen, z. B. ~ / Library / LaunchAgents / org.jupyter.notebook.plist.

Die Liste, mit der ich endete, war die folgende.

<?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>

Ich habe keine Möglichkeit gefunden, das Home-Verzeichnis des Benutzers dort nicht fest zu codieren. Die Option EnableGlobbing funktioniert nur in ProgramArgument, und es gibt keine Erweiterung für Umgebungsvariablen. Daher muss sie vorerst dort vorhanden sein.

Rickard Holmberg
quelle