1

Я люблю использовать screen, но у меня не было большого опыта использования его поверх ssh. На работе мне недавно выдали учетную запись оболочки, и я решил попытаться настроить ее так, чтобы при входе в систему запускался экран. Я вхожу удаленно через ssh с замазкой.

Во всяком случае, у меня было два метода, которые оба, казалось, работали довольно хорошо:

  1. настроил замазку для запуска /usr /bin /screen -R при подключении и
  2. добавил эту строку в мой .bashrc: if [ -z "$STY" ]; then /usr/bin/screen -R; fi

Проблема в том, что позже я попытался найти некоторые файлы, которые не смог подключить. Он сказал:"Должен быть подключен к терминалу". Я также попробовал Filezilla, и у него были серьезные проблемы с подключением. Я немного погуглил, и, видимо, я не первый, кто запутался в sftp, пытаясь использовать screen в качестве оболочки для входа. http://winscp.net/forum/viewtopic.php?t=1715

Мне было интересно, если кто-нибудь может дать некоторое представление о том, почему это происходит, потому что у меня действительно нет никакой подсказки, и мне было бы интересно понять это и, возможно, найти обходной путь.

1 ответ1

3

Вы должны поместить все, что связано с оболочками входа в систему, в ~/.bash_profile а вещи, связанные с интерактивными (не входящими в систему) оболочками, в ~/.bashrc . Со страницы руководства bash (1):

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

Таким образом, вместо простой символической ссылки ~/.bashrc на ~/.bash_profile (или наоборот) у вас должны быть два отдельных файла, в которых есть несколько разные вещи.

Поместите [ -z "$STY" ] && then /usr/bin/screen -R только в ~/.bash_profile и тогда вы получите запуск экрана только тогда, когда вы фактически входите в систему, вместо того, чтобы запускать экран каждый раз, когда вы появляетесь. интерактивная оболочка (у меня сейчас нет источников scp, но у меня есть слабая память о ней, которая фактически порождает оболочку, так что оболочка порождает процессы ~/.bashrc).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .