diff --git a/databases/README.md b/databases/README.md index 3acbbbb..4356a60 100644 --- a/databases/README.md +++ b/databases/README.md @@ -1,3 +1,3 @@ # Базы данных -- [PostgreSQL](postgresql.md) \ No newline at end of file +- [PostgreSQL](src/postgresql.md) \ No newline at end of file diff --git a/databases/postgresql.md b/databases/src/postgresql.md similarity index 100% rename from databases/postgresql.md rename to databases/src/postgresql.md diff --git a/linux/README.md b/linux/README.md index 4d48a6c..4e6f4d9 100644 --- a/linux/README.md +++ b/linux/README.md @@ -1,10 +1,11 @@ # Linux -- [Установка софта в Linux](soft.md) -- [Права доступа](chmod.md) -- [Настройка сети](network.md) -- [Настройка SSH](ssh.md) - - [Копирование файлов на удалённый сервер через SSH](scp.md) -- [Анализ трафика (tcpdump)](tcpdump.md) -- [Мониторинга и анализа трафика (ngrep)](ngrep.md) -- [Работа с архивами](archives.md) +- [Установка софта в Linux](src/soft.md) +- [Права доступа](src/chmod.md) +- [Настройка сети](src/network.md) +- [Настройка SSH](src/ssh.md) + - [Копирование файлов на удалённый сервер через SSH](src/scp.md) +- [Анализ трафика (tcpdump)](src/tcpdump.md) +- [Мониторинга и анализа трафика (ngrep)](src/ngrep.md) +- [Работа с архивами](src/archives.md) +- [systemd](src/systemd.md) diff --git a/linux/archives.md b/linux/src/archives.md similarity index 100% rename from linux/archives.md rename to linux/src/archives.md diff --git a/linux/chmod.md b/linux/src/chmod.md similarity index 100% rename from linux/chmod.md rename to linux/src/chmod.md diff --git a/linux/network.md b/linux/src/network.md similarity index 100% rename from linux/network.md rename to linux/src/network.md diff --git a/linux/ngrep.md b/linux/src/ngrep.md similarity index 100% rename from linux/ngrep.md rename to linux/src/ngrep.md diff --git a/linux/scp.md b/linux/src/scp.md similarity index 100% rename from linux/scp.md rename to linux/src/scp.md diff --git a/linux/soft.md b/linux/src/soft.md similarity index 100% rename from linux/soft.md rename to linux/src/soft.md diff --git a/linux/ssh.md b/linux/src/ssh.md similarity index 100% rename from linux/ssh.md rename to linux/src/ssh.md diff --git a/linux/src/systemd.md b/linux/src/systemd.md new file mode 100644 index 0000000..ab079d2 --- /dev/null +++ b/linux/src/systemd.md @@ -0,0 +1,122 @@ +# systemd + +## Пользовательский сервис с доступом к X11 + +Для запуска пользовательских сервисов необходимо импортировать данные в переменную `XDG_RUNTIME_DIR`. Это можно сделать путём определения переменной в файле, который передаётся на запуск `startx` или `xinit` (например файл `~/.xinitrc`):: + +```sh +export XDG_RUNTIME_DIR=/run/user/$(id -u) +``` + +### Пример пользовательского сервиса + +Структура сервиса в качестве примера: + +```sh +. +├── bin +│ └── myprogram +└── etc + └── systemd + └── user + └── myprogram.service +``` + +где `bin/myprogram` - исполняемый файл самой программы, которую необходимо запускать в качестве пользовательского сервиса `systemd`. Файл `/etc/systemd/user/myprogram.service`: + +```sh +[Unit] +Description=myprogram +PartOf=graphical-session.target + +[Service] +ExecStart=/bin/myprogram + +[Install] +WantedBy=default.target +``` + +Для автозагрузки сервиса необходимо создать ссылку на сам сервис в домашней директории `~/.config/systemd/user/graphical-session.target.wants/myprogram.service`: + +```sh +.config +└── systemd + └── user + └── graphical-session.target.wants + └── myprogram.service -> /etc/systemd/user/myprogram.service +``` + +Делается это командой: + +```sh +systemctl --user enable myprogram.service +``` + +Так как сервис запускается **после** входа пользователя в систему, то необходимо в файл, который передаётся на запуск `startx` или `xinit` добавить строку запсука `myprogram.service` (например, в файл `~/.xinitrc`): + +```sh +systemctl --user start myprogram.service +``` + +После чего сервис `myprogram.service` будет автоматически запускаться после входа пользователя в систему. + +### Пример пользовательского сервиса с использованием "якоря" `xsession.target` + +Структура сервиса в качестве примера: + +```sh +. +├── bin +│ └── myprogram +└── etc + └── systemd + └── user + ├── myprogram.service + └── xsession.target +``` + +где `bin/myprogram` - исполняемый файл самой программы, которую необходимо запускать в качестве пользовательского сервиса `systemd`. Файл `/etc/systemd/user/myprogram.service`: + +```sh +[Unit] +Description=myprogram +PartOf=graphical-session.target + +[Service] +ExecStart=/bin/myprogram + +[Install] +WantedBy=xsession.target +``` + +Файл `/etc/systemd/user/xsession.target` используемый в качестве "якоря", на который будут цепляться остальные сервисы: + +```sh +[Unit] +Description=X session managed by systemd +BindsTo=graphical-session.target +``` + +Для автозагрузки сервиса необходимо создать ссылку на сам сервис в домашней директории `~/.config/systemd/user/graphical-session.target.wants/myprogram.service`: + +```sh +.config +└── systemd + └── user + └── graphical-session.target.wants + └── myprogram.service -> /etc/systemd/user/myprogram.service +``` + +Делается это командой: + +```sh +systemctl --user enable myprogram.service +``` + +Так как сервис запускается **после** входа пользователя в систему, то необходимо в файл, который передаётся на запуск `startx` или `xinit` добавить строку запсука "якоря" `xsession.target` (например, в файл `~/.xinitrc`): + +```sh +systemctl --no-block --user start xsession.target +``` + +После чего сервис `myprogram.service` будет автоматически запускаться после входа пользователя в систему. \ No newline at end of file diff --git a/linux/tcpdump.md b/linux/src/tcpdump.md similarity index 100% rename from linux/tcpdump.md rename to linux/src/tcpdump.md diff --git a/manuals/README.md b/manuals/README.md index 33c965f..a8298fd 100644 --- a/manuals/README.md +++ b/manuals/README.md @@ -1,3 +1,3 @@ # Мануалы -## [initrd (Initial RAM Disk)](initrd.md) \ No newline at end of file +## [initrd (Initial RAM Disk)](src/initrd.md) \ No newline at end of file diff --git a/manuals/initrd.md b/manuals/src/initrd.md similarity index 100% rename from manuals/initrd.md rename to manuals/src/initrd.md diff --git a/program/README.md b/program/README.md index 8d25301..d1372d8 100644 --- a/program/README.md +++ b/program/README.md @@ -1,4 +1,4 @@ # Программы -- [Asterisk](asterisk.md) -- [Oh My ZSH!](ohmyzsh.md) +- [Asterisk](src/asterisk.md) +- [Oh My ZSH!](src/ohmyzsh.md) diff --git a/program/asterisk.md b/program/src/asterisk.md similarity index 100% rename from program/asterisk.md rename to program/src/asterisk.md diff --git a/program/ohmyzsh.md b/program/src/ohmyzsh.md similarity index 100% rename from program/ohmyzsh.md rename to program/src/ohmyzsh.md diff --git a/programming/README.md b/programming/README.md index 6ca15c4..44da0b9 100644 --- a/programming/README.md +++ b/programming/README.md @@ -1,6 +1,6 @@ # Программирование -- [Работа с библиотеками](libs.md) +- [Работа с библиотеками](src/libs.md) ## [Язык программирования C](c) diff --git a/programming/c/README.md b/programming/c/README.md index 9c49704..23eeead 100644 --- a/programming/c/README.md +++ b/programming/c/README.md @@ -1,3 +1,3 @@ # Язык программирования C -[Компиляция C](c_compilation.md) \ No newline at end of file +[Компиляция C](src/c_compilation.md) \ No newline at end of file diff --git a/programming/c/c_compilation.md b/programming/c/src/c_compilation.md similarity index 100% rename from programming/c/c_compilation.md rename to programming/c/src/c_compilation.md diff --git a/programming/d/README.md b/programming/d/README.md index 3c88784..6c75fa3 100644 --- a/programming/d/README.md +++ b/programming/d/README.md @@ -1,3 +1,3 @@ # Язык программирования D -[Проект dub.json](dub.md) \ No newline at end of file +[Проект dub.json](src/dub.md) \ No newline at end of file diff --git a/programming/d/dub.md b/programming/d/src/dub.md similarity index 100% rename from programming/d/dub.md rename to programming/d/src/dub.md diff --git a/programming/libs.md b/programming/src/libs.md similarity index 100% rename from programming/libs.md rename to programming/src/libs.md