Aug 10, 2016 21:38
Есть семейство SIP-GSM шлюзов имени HyberTone, они же DBLTek. Называются "GoIP N", где N - число каналов от 1 до 32. На сегодняшний день это единственное реально работающее решение такого толка за более-менее земные бабки. Глючное шоппц. Но всё остальное либо вообще не работает, либо имеет ну совсем уж конский ценник.
К этому шлюзу прилагается китайская же прекомпилированная ELF-32 софтина, предназначенная для забирания с железки пришедших SMSок и последующего их складывания в MySQL-базу. Само собой, не менее глючная. Исходного кода её нет. В доверешение ко всему она (софтина) ещё и "течёт" (memory leak). Не сильно, но стабильно. Разобраться что там внутри весьма затруднительно. Можно, конечно, написать свою такую же, ибо протокол общения с железкой известен (и крайне **нутый). Но это тоже геморрой ещё тот.
Ну да и хрен бы с ним. В конце концов, можно раз в сутки перезапускать её по cron-у. Но тут есть другая беда. В интерактивном режиме бинарник прекрасно стартует, зачем-то форкается во второй процесс, после чего они оба отвязываются от терминала и продолжают жить своей жизнью. Из-под systemd мне запустить эту тварь так и не удалось. Причём, самое странное, что иногда она таки стартует с пинка из systemd, но ровно один раз. Повторить достижение уже не удается, пока не разлогинишься и не зайдёшь заново.
Собственно вопрос. Какие такие кардинальные различия существуют между интерактивным запуском из root-ового шелла и запуском из-под systemd? WorkingDirectory прописывал. Environment="PATH=бла-бла-бла" прописывал. С type=simple,forking и прочими игрался. Пробовал запускать как напрямую, так и через "/bin/bash -c бла-бла-бла". Хрен там. Интерактивно - работает, неинтерактивно - нет. Чего ещё этой дряни может не хватать? Как это можно посмотреть?
грабли,
администрирование,
linux