Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| freebsd:mosquitto [2021/12/11 20:08] alex | freebsd:mosquitto [2022/05/15 18:16] (текущий) alex | ||
|---|---|---|---|
| Строка 70: | Строка 70: | ||
| Password: | Password: | ||
| Reenter password: | Reenter password: | ||
| + | |||
| + | Примеры использования утилиты mosquitto_passwd | ||
| + | |||
| + | * mosquitto_passwd [ -c | -D ] passwordfile username | ||
| + | * mosquitto_passwd -b passwordfile username password | ||
| + | * mosquitto_passwd -U passwordfile | ||
| + | Опции: | ||
| + | -b Запуск в пакетном режиме. Это позволяет ввести пароль в командной строке, который может быть удобным, но должен использоваться с осторожностью, поскольку пароль будет отображаться в командной строке и в истории команд. | ||
| + | |||
| + | -c Создаёт новый файл паролей. Если файл уже существует, он будет перезаписан. | ||
| + | |||
| + | -D Удалит указанного пользователя из файла паролей. | ||
| + | |||
| + | -U Эта опция может использоваться для обновления/конвертации файла паролей с паролями обычного текста в файл с использованием хэшированных паролей. Он изменит указанный файл. Он не определяет, были ли хэшированы пароли, поэтому его использование в файле паролей, который уже содержит хэшированные пароли, будет генерировать новые хэши на основе старых хешей и сделает файл паролей непригодным для использования. | ||
| + | |||
| + | //passwordfile// Файл с паролями для изменения. | ||
| + | |||
| + | //username// Имя пользователя для добавления/обновления/удаления. | ||
| + | |||
| + | //password// Пароль для использования в пакетном режиме. | ||
| Запускаю mosquitto. | Запускаю mosquitto. | ||
| Строка 101: | Строка 121: | ||
| done | done | ||
| + | Конструкция -F'["]' изменяет разделитель awk с пробела по умолчанию на двойные кавычки. | ||
| + | |||
| + | Чтобы скрипт стартовал как демон написал с папке /usr/local/etc/rc.d ещё одни скрипт | ||
| + | #!/bin/sh | ||
| + |  | ||
| + | # PROVIDE: mqtt | ||
| + | # REQUIRE: DAEMON | ||
| + | # BEFORE: LOGIN | ||
| + | # KEYWORD: shutdown | ||
| + |  | ||
| + | # | ||
| + | # Add the following lines to /etc/rc.conf to enable mqtt: | ||
| + | # | ||
| + | # mqtt_enable="YES" | ||
| + | # | ||
| + | # | ||
| + |  | ||
| + | . /etc/rc.subr | ||
| + |  | ||
| + | name=mqtt | ||
| + | rcvar=${name}_enable | ||
| + | pidfile="/var/run/${name}.pid" | ||
| + |  | ||
| + | command=/scripts/mqqt-temp | ||
| + | start_cmd="${name}_start" | ||
| + | stop_cmd="${name}_stop" | ||
| + | status_cmd="${name}_status" | ||
| + |  | ||
| + | mqtt_start() { | ||
| + | /usr/sbin/daemon -P ${pidfile} -r -f $command | ||
| + | } | ||
| + |  | ||
| + | mqtt_stop() { | ||
| + | if [ -e "${pidfile}" ]; then | ||
| + | kill -s TERM `cat ${pidfile}` | ||
| + | else | ||
| + | echo "${name} is not running" | ||
| + | fi | ||
| + | } | ||
| + |  | ||
| + | mqtt_status() { | ||
| + | if [ -e "${pidfile}" ]; then | ||
| + | echo "${name} is running as pid `cat ${pidfile}`" | ||
| + | else | ||
| + | echo "${name} is not running" | ||
| + | fi | ||
| + | } | ||
| + |  | ||
| + | load_rc_config ${name} | ||
| + | run_rc_command "$1" | ||
| + | |||
| + | rc скрипт не демонизирует процесс, для демонизации используется строка **///usr/sbin/daemon//** | ||
| + | ссылки:\\ | ||
| + | https://www.freebsd.org/cgi/man.cgi?query=daemon\\ | ||
| + | https://serverfault.com/questions/873185/freebsd-rc-d-script-doesnt-start-as-a-daemon\\ | ||
| + | https://poptechno.ru/kak-ispolzovat-neskolko-razdelitelej-v-awk/\\ | ||
| + | http://snakeproject.ru/rubric/article.php?art=script_daemon_freebsd_28.05.2019\\ | ||
| + | https://habr.com/ru/post/137857/ | ||