Автоматически (или более легко) снова соединяются с экранной сессией после прерывания соединения с сетью

Похоже, вы не соответствуете некоторым клавишам. Я думаю, что ваш пример присоединяет Donation.Id к Cause.Id - вы должны подтвердить это, посмотрев на сгенерированный SQL. Вот как можно связать ключи с разными именами:

Donation.belongsTo(models.Cause, {
      as: "Causes",
      {foreignKey: "id", sourceKey: "causeId"}
    })

Или проверить с дополнительными атрибутами пожертвования:

attributes: ['id', 'userId', 'amount', 'updatedAt', 'causeID'],

Идентификатор пожертвования соответствует идентификатору причины?

55
задан Vadim Kotov 15 August 2017 в 22:29
поделиться

4 ответа

-t опция делает то, что Вы хотите?

     -t      Force pseudo-tty allocation.  This can be used to execute arbi-
             trary screen-based programs on a remote machine, which can be
             very useful, e.g. when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.

Так:

laptop> ssh -t server.com screen -dr pts-2

Это, кажется, работает в моей установке.

59
ответ дан Greg Hewgill 7 November 2019 в 07:28
поделиться

Используйте -t опция к ssh для выделения терминала в то время как непосредственно рабочий команда.

laptop> ssh -t server.com screen -dr pts-2
2
ответ дан Douglas Leeder 7 November 2019 в 07:28
поделиться

Я работал над чем-то подобным, но не совсем добрался там, Ваши решения решили мою проблему, таким образом, вот мое предложение:

ssh -t server.com "screen -S foo -rd || screen -S foo"

Это просто пытается открыть существующий экран, названный нечто и если это не существует, создает его. Я помещу это в средство запуска на моем ноутбуке, поэтому когда беспроводная сеть пойдет, я могу просто открыться, где я кончил.

Просто заметил, что экранная оболочка по умолчанию немного слаба, таким образом, улучшение, которое настраивает Вашу домашнюю среду немного лучше:

ssh -t server.com "screen -S foo -rd || screen -S foo bash -l"
2
ответ дан 7 November 2019 в 07:28
поделиться

Теперь это относится к следующему: Использование экрана GNU полностью прозрачно и автоматически


Вот сценарий ssc, который работает так же, как ssh, но принимает третий аргумент , чтобы указать экран для повторного подключения или имя нового экрана. Я считаю, что этот сценарий включает все в исходный вопрос.
#!/usr/bin/env perl
# Use 'ssc' (this script) instead of 'ssh' to log into a remote machine.
# Without a 3rd argument it will list available screens.
# Give it a 3rd argument to attach to an existing screen or specify a new
#   screen.  Eg, ssc remote.com foo
# The numbers in front of the screen tag can usually be ignored.
# Screen is a little too clever though in that if there's an existing screen "bar"
#   and you say "ssc remote.com b" it will reconnect you to "bar" instead of making
#   a new screen "b".  It's like invisible and silent tab-completion.

if(scalar(@ARGV)==0 || scalar(@ARGV) > 2) {
  print "USAGE: ssc remote.com [screen name]\n";
} elsif (scalar(@ARGV) == 1) {
  $machine = shift;
  @screens = split("\n", `ssh $machine screen -ls`);
  for(@screens) {
    if(/^\s*(\d+)\.(\S+)\s+\(([^\)]*)\)/) {
      ($num, $tag, $status) = ($1, $2, $3);
      if($status =~ /attached/i) { $att{"$num.$tag"} = 1; }
      elsif($status =~ /detached/i) { $att{"$num.$tag"} = 0; }
      else { print "Couldn't parse this: $_\n"; }
    }
  }
  print "ATTACHED screens:\n";
  for(keys(%att)) { print "  $_\n" if $att{$_}; }
  print "DETACHED screens:\n";
  for(keys(%att)) { print "  $_\n" unless $att{$_}; }
} else {
  $machine = shift;
  $tag = shift;
  system("ssh -t $machine \"screen -S $tag -dr || screen -S $tag\"");
}
3
ответ дан 7 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

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