リモートサーバーがあり、ブラウザを介して接続します。木星そこにホストされているノートブック。 jupyterサービスはを介して実行されますsystemd
。問題はjupyterが期待していることです二つ ctrl-c
5秒以内にお互いに命令を出して、きちんと終了してください。systemd
プロセスを停止するようにシグナルを送信し、タイムアウトを待ってから最後に jupyter が停止していないことを確認すると、終了シグナルを送信します。これにより、サービスを停止または再起動しようとすると、長い遅延と不完全なシャットダウンが発生します。 systemdにパラメータがあることはわかっていますが、それを実際に使用する方法と、このメカニズムを介して2つのキーストロークに対応する信号を送信するExecStop
方法の例を見つけることができません。ctrl-c
私の現在のサービスファイルは次のとおりです
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart=/home/linuxbrew/.linuxbrew/bin/jupyter notebook --no-browser
User=pgcudahy
Group=pgcudahy
WorkingDirectory=/home/pgcudahy
Environment=PATH=/home/linuxbrew/.linuxbrew/opt/python/libexec/bin:/home/linuxbrew/.linuxbrew/opt/cython/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/pgcudahy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[Install]
WantedBy=multi-user.target
ベストアンサー1
だから、もっと研究を通して送りたいのctrl-c
は、以下をSIGINT
使ってできることです。/bin/kill -s SIGINT
これを私のサービスファイルに追加すると、jupyterは完全に終了します。
ExecStop=/bin/kill -s SIGINT -$MAINPID & /bin/kill -s SIGINT -$MAINPID
完全なファイルは
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart=/home/linuxbrew/.linuxbrew/bin/jupyter notebook --no-browser
ExecStop=/bin/kill -s SIGINT -$MAINPID & /bin/kill -s SIGINT -$MAINPID
User=pgcudahy
Group=pgcudahy
WorkingDirectory=/home/pgcudahy
Environment=PATH=/home/linuxbrew/.linuxbrew/opt/python/libexec/bin:/home/linuxbrew/.linuxbrew/opt/cython/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/pgcudahy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[Install]
WantedBy=multi-user.target