BerandaComputers and TechnologyKelola Notebook Jupyter dan JupyterLab dengan Systemd

Kelola Notebook Jupyter dan JupyterLab dengan Systemd

10 Nov 2020

Pada artikel ini Anda akan melihat cara mudah mengelola Jupyter Notebook dan JupyterLab dengan menggunakan Perkakas Systemd . Ini berguna ketika Anda ingin memiliki instance yang berjalan lokal atau di server Anda yang dapat Anda kelola dan pantau.

Apa itu Systemd dan mengapa kita membutuhkannya? Systemd adalah sistem init di Linux yang digunakan untuk inisialisasi dan layanan sistem pengelolaan. Ini memungkinkan layanan yang dikonfigurasi untuk Systemd untuk mengelola dan memantaunya. Dengan cara ini, Anda dapat memeriksa apakah layanan masih berjalan, Anda dapat mengaturnya untuk memulai ulang secara otomatis, Anda memantau keluaran layanan, dan banyak lagi. Untuk menambahkan Jupyter sebagai layanan kita harus membuat file unit. Mari kita lihat cara kerjanya.

Systemd menggunakan file unit sebagai cara utama untuk mengelola dan mengkonfigurasi sumber daya sistem. File-file ini dalam format file INI dan disimpan dalam format / etc / systemd / system .

Tetapi sebelum kita mulai, kita harus mengkonfigurasi kata sandi untuk Jupyter. Biasanya saat menjalankan Jupyter, ini akan membuka jendela di browser Anda dengan token yang dibuat. Dalam hal ini, ini akan berjalan di latar belakang sebagai layanan dan Anda perlu menggunakan kata sandi. Ini dapat dilakukan dengan membuat kata sandi dan garam hash untuk digunakan dalam konfigurasi notebook dengan:

  python  - c   "dari IPython.lib.security import passwd; print (passwd ('PASS'))"   

Yang seharusnya memberi Anda hash seperti ini:

  sha1: 137775e93d29: ba64d3b78e089f0f779167242ddb080a05c42a84  

Untuk informasi lebih lanjut tentang keamanan, baca Keamanan di Server notebook Jupyter . Hebat, sekarang mari lanjutkan membuat file dengan nama jupyter.service dengan isi sebagai berikut:

   [Unit]   Deskripsi  =  Notebook Jupyter    [Service]   Jenis  =sederhana  PIDFile  =  / run / jupyter.pid   ExecStart  =  / home / user / anaconda3 / bin / python -m jupyter-lab --notebook-dir=/ home / user / notebooks --no-browser --NotebookApp.password='sha1: 137775e93d29: ba64d3b78e089f0f779167242ddb080a05c42a84'   Pengguna  =  pengguna   Grup  =  pengguna   Mulai ulang  =selalu  RestartSec  =  10    [Install]   WantedBy  =  multi-pengguna.target   

Setiap file memiliki beberapa bagian dan setiap bagian seperti [Unit] , [Service] , dan [Install] memiliki berbagai direktif yang digunakan untuk mengkonfigurasi layanan. Sebagian besar seharusnya sudah memberikan petunjuk tentang kegunaannya, tetapi kami akan segera membahas beberapa di antaranya. Untuk membaca lebih detail bagaimana ini bekerja, lihat tutorial Memahami Unit Systemd dan File Unit .

Yang paling penting di sini adalah ExecStart=, yang menentukan perintah yang akan dijalankan. Penting untuk dicatat, bahwa hanya jalur absolut yang harus digunakan dan ExecStart= direktif harus ditulis dalam satu baris. Dalam kasus ini file unit menggunakan JupyterLab yang diinstal di lingkungan dasar Anaconda. Jika Anda menggunakan virtualenv, ubah arahan untuk ExecStart= ke:

   ExecStart  = / bin / bash  - f   "sumber / rumah / pengguna / notebook / bin / aktifkan; jupyter-lab --notebook-dir=/ home / user / buku catatan "  

PIDFile = direktif menentukan di mana nomor identifikasi proses disimpan. Pastikan untuk memiliki pengguna dan grup Anda di User= dan Grup= arahan. Direktif Restart= menentukan jika layanan harus dimulai ulang ketika layanan keluar, dimatikan atau tercapai batas waktu. RestartSec= menentukan berapa lama itu harus menunggu hingga layanan akan dimulai ulang. Anda dapat membaca lebih lanjut tentang arahan di dokumentasi .

Jika Anda menggunakan lebih banyak konfigurasi dan ingin memilikinya dalam skrip bash, Anda dapat membuat skrip seperti berikut:

   #! / bin / bash  / home / nikolai / anaconda3 / bin / jupyter-lab       - buku catatan-dir  = / home / user / notebooks       - ip  =  '*'        - port  = 8888       - Aplikasi Notebook . Token =  ''        - Aplikasi Notebook . Kata sandi =  'sha1: 137 ...'        - tanpa browser   

Lalu, ganti ExecStart sebelumnya) dengan ExecStart=/ path / ke / script.sh di file unit. Juga, pastikan untuk membuatnya dapat dieksekusi dengan chmod + x /path/to/script.sh.

Akhirnya, alih-alih menggunakan argumen - notebook-dir , Anda dapat menentukan direktori kerja dengan menggunakan WorkingDirectory= direktif.

Pertama, pindahkan file unit ke / etc / systemd / system / dengan:

   sudo mv  jupyter.service / etc / systemd / system /  

Kemudian, muat ulang konfigurasi manajer systemd dengan:

   sudo  pemuatan ulang daemon systemctl  

Selanjutnya, aktifkan layanan untuk memulai saat boot dengan:

   sudo  systemctl  aktifkan  jupyter  

Untuk memulai layanan Jupyter, Anda perlu mengetik:

   sudo  systemctl mulai jupyter  

Untuk memeriksa statusnya, Anda dapat mengetik:

   sudo  status sistemctl jupyter  

Terakhir, Anda dapat memantau output layanan dengan sudo journalctl -u jupyter -f . Untuk menampilkan pesan log sejak boot terakhir ( - b ) dan tanpa kolom tambahan seperti stempel waktu dan nama host ( - o cat ), Tipe:

   sudo  journalctl  - u  jupyter  - b   - o   kucing   - f   

Ini akan menunjukkan kepada Anda keluaran yang mirip dengan keluaran berikut:

  Memulai Notebook Jupyter. [I 18:54:36.878 LabApp] Ekstensi JupyterLab dimuat dari /home/user/anaconda3/lib/python3.7/site-packages/jupyterlab [I 18:54:36.879 LabApp] Direktori aplikasi JupyterLab adalah / home / user / anaconda3 / share / jupyter / lab [I 18:54:36.880 LabApp] Melayani notebook dari direktori lokal: / home / user / notebooks [I 18:54:36.880 LabApp] Notebook Jupyter berjalan di: [I 18:54:36.880 LabApp] http://0.0.0.0:8888/  

Ini sangat berguna jika Anda perlu melihat apa yang keluar dari Jupyter karena beberapa kesalahan dan log tidak terlihat dalam notebook. Untuk perintah dan argumen yang lebih berguna, lihat ini lembar contekan Systemd .

Sekarang, Anda seharusnya dapat mengelola dan memantau layanan Jupyter Anda dengan Systemd. Untuk mempelajari cara menginstal dan mengkonfigurasi Jupyter di server termasuk SSL / TLS, lihat panduan saya sebelumnya di Menginstal dan Menjalankan Notebook Jupyter di Server Berikut adalah beberapa sumber daya lebih lanjut saat bekerja dengan systemd:

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments