🔧 Шаг 1: Загрузка скрипта установки
Загрузить скрипт install.sh
Используйте одну из команд ниже для загрузки скрипта установки:
С помощью wget:
wget https://app.green-signal.ru/install.shС помощью curl:
curl -O https://app.green-signal.ru/install.sh🔐 Шаг 2: Предоставление прав на выполнение
Дать скрипту права на выполнение
Выполните следующую команду:
chmod +x install.shЭта команда добавляет право на выполнение файлу install.sh.
🚀 Шаг 3: Выполнение скрипта установки
Запустить скрипт установки
Выполните скрипт с необходимыми параметрами:
sudo ./install.sh <ИМЯ_УСТРОЙСТВА> <КОД_ПОДКЛЮЧЕНИЯ>Параметры скрипта:
GlobalId нового устройства. Это уникальный идентификатор вашего устройства в системе Green-Signal.
Примеры: MyDevice, server-001, warehouse-sensor
Где получить: Это имя, которое вы придумываете для своего устройства. Оно используется для идентификации в системе мониторинга.
Код подключения от продюсера (сервера управления). Это уникальный числовой код, который связывает ваше устройство с аккаунтом на сервере.
Примеры: 5000, 1234, 9999
Где получить: Вы получаете код во 2 пункте инструкции
Пример использования:
sudo ./install.sh "MyDevice" 5000Разбор примера:
"MyDevice"- globalId вашего устройства5000- код подключения от продюсера
sudo, так как скрипт устанавливает файлы в системную директорию /etc/sdmOpcServer.
✅ Шаг 4: Проверка успешной установки
Убедитесь в отсутствии ошибок
После выполнения скрипта убедитесь, что:
- ✅ Скрипт завершился без ошибок
- ✅ В выводе видна надпись "Cleanup completed"
Проверить работоспособность
Запустите файл opcServer для проверки:
cd /etc/sdmOpcServer./opcServerДля остановки процесса нажмите Ctrl+C
⚙️ Шаг 5: Настройка автозапуска
📋 Самостоятельная настройка автозапуска
После успешной установки и проверки работоспособности приложения вам необходимо самостоятельно настроить автозапуск сервиса для вашей операционной системы.
Способ настройки зависит от типа системы инициализации, используемой вашей ОС:
- systemd - используется в Ubuntu 16.04+, CentOS 7+, Debian 8+
- init.d - используется в старых версиях Linux (Debian 7, CentOS 6, Ubuntu 14.04 и ранее)
- OpenRC - используется в Alpine Linux и некоторых других дистрибутивах
- runit - альтернативная система инициализации
Рекомендуется использовать systemd, так как это стандарт в современных Linux-системах.
💡 Примеры настройки для различных систем инициализации (нажмите чтобы развернуть)
Создание systemd сервиса
Для автоматического запуска приложения при загрузке системы, создайте файл сервиса systemd:
sudo nano /etc/systemd/system/green-signal-opc.serviceСкопируйте следующее содержимое:
[Unit]
Description=Green-Signal OPC Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/etc/sdmOpcServer/
ExecStart=/etc/sdmOpcServer/opcServer
ExecStopPost=/etc/sdmOpcServer/opcServer --stop
StartLimitBurst=10
Restart=on-failure
RestartSec=2s
OOMScoreAdjust=-100
[Install]
WantedBy=multi-user.targetНажмите: Ctrl+X, затем Y, затем Enter для сохранения
Активировать сервис
Выполните следующие команды:
1. Перезагрузить конфигурацию systemd:
sudo systemctl daemon-reload2. Включить автозапуск сервиса:
sudo systemctl enable green-signal-opc.service3. Запустить сервис:
sudo systemctl start green-signal-opc.serviceПроверить статус сервиса
Убедитесь, что сервис работает:
sudo systemctl status green-signal-opc.serviceПросмотр логов:
sudo journalctl -u green-signal-opc.service -fСоздание init.d скрипта
Для старых систем на базе init.d создайте скрипт:
sudo nano /etc/init.d/green-signal-opcСкопируйте следующее содержимое:
#!/bin/bash
### BEGIN INIT INFO
# Provides: green-signal-opc
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Green-Signal OPC Server
# Description: Start/stop Green-Signal OPC Server daemon
### END INIT INFO
NAME="green-signal-opc"
DAEMON="/etc/sdmOpcServer/watchdog"
WORKDIR="/etc/sdmOpcServer"
PIDFILE="/var/run/$NAME.pid"
USER="root"
LOGFILE="/var/log/$NAME.log"
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
do_start() {
log_daemon_msg "Starting $NAME"
if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE) 2>/dev/null; then
log_progress_msg "already running"
log_end_msg 0
return 0
fi
cd $WORKDIR
start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--make-pidfile \
--background \
--chdir $WORKDIR \
--chuid $USER \
--exec $DAEMON \
-- >> $LOGFILE 2>&1
RETVAL=$?
log_end_msg $RETVAL
return $RETVAL
}
do_stop() {
log_daemon_msg "Stopping $NAME"
start-stop-daemon --stop --quiet \
--pidfile $PIDFILE \
--retry=TERM/30/KILL/5
RETVAL=$?
rm -f $PIDFILE
log_end_msg $RETVAL
return $RETVAL
}
do_restart() {
do_stop
sleep 2
do_start
}
do_status() {
if [ -f $PIDFILE ]; then
PID=$(cat $PIDFILE)
if kill -0 $PID 2>/dev/null; then
echo "$NAME is running (PID: $PID)"
return 0
else
echo "$NAME is not running (stale PID file)"
return 1
fi
else
echo "$NAME is not running"
return 3
fi
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart|force-reload)
do_restart
;;
status)
do_status
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit $?Нажмите: Ctrl+X, затем Y, затем Enter для сохранения
Установка прав и регистрация
1. Дать скрипту права на выполнение:
sudo chmod +x /etc/init.d/green-signal-opc2. Зарегистрировать скрипт в системе:
sudo update-rc.d green-signal-opc defaultsУправление сервисом
Запустить сервис:
sudo service green-signal-opc startОстановить сервис:
sudo service green-signal-opc stopПерезапустить сервис:
sudo service green-signal-opc restartПроверить статус:
sudo service green-signal-opc statusПросмотр логов:
tail -f /var/log/green-signal-opc.log🐛 Решение проблем
Проверка системного времени
Корректное время в системе критично для работы приложения. Проверьте текущее время:
dateДля синхронизации времени используйте NTP (Network Time Protocol):
sudo ntpdate -s ntp.ubuntu.comИли используйте timedatectl (для systemd систем):
sudo timedatectl set-ntp trueПроверить статус синхронизации:
timedatectlSSL сертификаты проходят валидацию (нет корневых сертификатов)
При возникновении проблем с верификацией SSL сертификатов может потребоваться ручное обновление корневых сертификатов. Это особенно актуально для устаревших систем или при отсутствии регулярного обновления пакетов из репозитория.
Решение для Debian/Ubuntu систем:
1. Найдите последнюю версию пакета сертификатов в репозитории:
http://ftp.ru.debian.org/debian/pool/main/c/ca-certificates/2. Загрузите пакет с сертификатами:
wget http://ftp.ru.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20211016_all.deb3. Установите пакет в вашей системе:
sudo dpkg -i ca-certificates_*_all.deb4. Обновите кэш сертификатов:
sudo update-ca-certificatesСкрипт требует sudo
Если при выполнении скрипта вы получите ошибку о недостаточных правах, используйте sudo:
sudo ./install.sh "MyDevice" 5000Нет прав на выполнение
Если скрипт не запускается, убедитесь, что вы дали ему права:
chmod +x install.shОшибка: "curl/wget не найден"
Установите необходимый инструмент:
Для Debian/Ubuntu:
sudo apt-get update && sudo apt-get install curl wgetДля CentOS/RHEL:
sudo yum install curl wgetФайл opcServer не работает
Проверьте архитектуру вашей системы:
uname -mСкрипт должен автоматически выбрать правильный бинарник для вашей архитектуры (amd64, arm64, armv7, 386).