Покретање nordvpna и порука о недоступном демону уска је жалба која обично стиже кад већ касните. Она не говори ништа о томе да ли тунел ради, јер је CLI само предњи део: разговара са позадинским процесом преко Unix socketa, а порука значи да се тај разговор није догодио. Идите од команде према споља и зауставите се на првој ствари која се покаже нетачном.

Почните тамо где се грешка појављује

Укључена су два процеса, и управо њихово мешање чини ову ситуацију тајанственом. Демон поседује тунел и слуша на socketu под /run/nordvpn/. Команда коју сте откуцали повезује се на тај socket уместо да сама дира интерфејсе.

Кад socket недостаје или одбија везу, CLI нема кога да пита, па пријављује варијанту „кориснички демон“ или „системски демон“ исте жалбе. Једна од тих варијанти изричито наводи путању, и то је најкориснија реченица у целом разговору.

Проверите unit пре свега осталог

Питајте управника сервиса ради ли демон, па га покрените и омогућите у једном кораку ако не ради:

systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version

Ако unit постоји али је неактиван, enable --now га истовремено покреће и уређује следеће подизање. Ако unit не постоји, пакет није онај који претпостављате, а инсталирано име је важније од имена у вашим белешкама. То звучи као педантна разлика док не потрошите двадесет минута на омогућавање сервиса који никада није инсталиран под тим именом. Прочитајте шта постоји, па поступите према томе.

Попис unit датотека решава то једном командом и вреди га обавити пре него што закључите било шта о инсталацији:

systemctl list-unit-files 'nordvpn*'
service --status-all

Издања су испоручивала сервис под више од једног имена unita, па ће build који користи nordvpn уместо nordvpnd произвести савршену копију ове грешке док здрави сервис ради одмах поред њега.

Socket и његова група одлучују о приступу

Чак и са покренутим демоном, веза може бити одбијена због дозвола. Инсталатер ствара групу nordvpn и socket се у складу с тим поседује, па корисник изван те групе добија одбијеницу док је сервис потпуно здрав.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Чланство у групи чита се при почетку сесије, зато се чини да промена не ради у терминалу у којем сте је направили. Потребна је нова пријавна љуска или newgrp пре него што покренута сесија види нову групу. Тестирајте у новој љусци, не у оној која је управо извршила команду. Иначе ћете закључити да поправка није успела, а она једноставно још није примењена.

Власништво над самим socketom друга је половина те провере. Упоредите групу на socketu са групама које пријављује љуска у којој ради CLI, и питање дозвола решава се једним кораком уместо поновним инсталирањем:

ls -l /run/nordvpn
id

Жив процес није доказ исправног socketa. Демон покренут од другог управника или стари пакет који је везао другачије именован socket пријављују исто. Попис директоријума разликује те случајеве у једном реду, зато је бољи од поновне инсталације.

Процес по кориснику на старијем паковању

Нека паковања покрећу други процес у контексту пријављеног корисника, који десктоп интеграција очекује да пронађе. Ако га системска init скрипта покрене без преласка на тај налог, CLI тражи демон којег не поседује ниједна сесија.

На initu без systemda документовани распоред дели улоге: системски сервис ради под једним именом, а процес на страни корисника под циљним налогом уз chpst -u <user>. Проверите који распоред ваша инсталација заиста користи пре него што додате стартну скрипту која претпоставља онај други.

Како да знате да сте завршили

Уобичајени повод је надоградња, јер нови бинарни фајл очекује стање сервиса које стари никада није оставио. Заустављање, поновно омогућавање и покретање тим редом то чисти:

sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version

Последња команда је тест прихватања. Исписана верзија значи да socket одговара, што сваки преостали квар премешта у област пријаве, плана или повезаности и изводи га из овог чланка. Ако одговори, престаните да читате овде и радије погледајте налог.

Ако socket и даље недостаје, прочитајте journal unita да видите зашто се зауставио, па проверите да ли /run/nordvpn постоји и може ли сервисни налог тамо да пише. Процес који се подигне и одмах умре бележи свој разлог у том journalu, а један ред је брже прочитати него што је поновну инсталацију извести.

Повезани чланци