Решил сделать себе небольшое окружение, чтобы учить python. Создал виртуальную машинку с убунтой, установил pyenv, там anaconda, ну и собственно IPython Notebook в ней.
Понял, что я хочу, чтобы сервер с IPython Notebook'ом у меня запускался при загрузке виртуальной машины, но при этом, чтобы он был не на фоне где-то, а чтобы к нему можно было приаттачиться и посмотреть что он говорит, какие ошибки выводит если что.
Сделал себе для этого очень кривое решение. Сделал автоматический логин в tty2 и добавил в
.bashrc
следующие строки:
if [ "$(tty)" = '/dev/tty2' ]; then tmux; fi
if [ -z "$(ps -e | grep 'jupyter-note')" ]; then [ -n "$TMUX" ] && command -v tmux >/dev/null && ./notebook.sh; fi
То есть скрипт сначала проверяет, находится ли он в терминале tty2, открывает tmux, потом в случае если notebook еще не запущен, но он находится в tmux'е - запускает скрипт стартующий IPython Notebook.
Минусы этого решения очевидны, не удастся попользоваться tmux'ом, если мне вдруг захочется с ним разобраться наконец, да и вообще как-то очень криво это выглядит. Плюс, что меня даже еще сильнее волнует, при выключении виртуальной машины IPython Notebook отрубается резко, совсем не так, как должен по идее.
Хочу спросить, какие есть другие хорошие способы сделать похожую вещь, чтобы при загрузке компьютера у меня запускалась программа, но при этом чтобы можно было к ней как-то приаттачиться?
И есть ли какие-то способы нормально её завершать перед выключением компьютера, ну, в смысле, не вручную?