Не удалось получить доступ к GitHub; Не удалось подключиться к серверу

Когда процесс демонизируется, он разветвляется (как минимум один раз ), родительский процесс возвращается немедленно, а дочерний процесс выполняет эту работу.

Когда этот ребенок умирает, у него больше нет родителя. Вернее, он был принятinit(процессом id 1 ). initсможет получить статус выхода.

В Linux и начиная с ядра 3.4 вы можете указать, какой процесс будет принимать осиротевшие процессы (для своих потомков и потомков ), используяPR_SET_CHILD_SUBREAPERprctl().

Итак, как и в этом очень похожем вопросе и ответе , если в Linux 3.4+ вы можете запустить свой демон под оболочкой, которая объявляет себя дочерним поджнецом , и он сообщает о статусе выхода. его потомков-сирот:

Здесь используется perlи жестко заданное значениеPR_SET_CHILD_SUBREAPERprctl():

perl -MPOSIX -le '
  require "syscall.ph";
  syscall(&SYS_prctl,36,1) >= 0 or die "cannot set subreaper: $!";
  if (!fork) {
    exec @ARGV;
    exit(127);
  }
  # now reporting on all children and grand-children:
  while (($pid = wait) > 0) {
   print "$pid: ". WEXITSTATUS($?)
  }' your-daemon here

1
15.05.2019, 20:29
2 ответа

Поскольку ваш системный вызов connect()возвращаетEACCES(errno==13 ), на основании connect(2)есть две возможности:

  • «Пользователь пытался подключиться к широковещательному адресу без включенного широковещательного флага сокета»; или
  • «запрос на подключение не выполнен из-за правила локального брандмауэра».

Для первого потребуются странные и неправдоподобные записи в /etc/hostsили еще более странная настройка DNS, поэтому я ставлю деньги на второе (правило локального брандмауэра ).

1
28.04.2021, 23:33

Так как ошибка

fatal: unable to access 'https://github.com/repository-name': Couldn't connect to server

просто создайте токен-ключ для доступа к вашему репозиторию

  • Получилhttps://github.com/settings/tokens
  • Создание токенов личного доступа
  • Выбрать заметку, добавить разрешения (дать все)
  • А также выберите срок действия

Теперь, после этого, скопируйте его и используйте в качестве пароля в терминале как

Username for 'https://github.com': your_username
Password for 'https://your_username@github.com': personal access tokens

Вот так

0
13.10.2021, 22:41

Теги

Похожие вопросы