Відкрити кілька "Терміналів" без GUI (startx)


13

Я не знаю, чи заголовок пояснюється сам собою, але я хотів відкрити кілька (два поки що достатньо) терміналів, не запускаючи Desktop.

Я хочу мати сценарій PHP (штатний) і мати можливість використовувати мій термінал Raspi, як це відбувається, коли я запускаю Raspi з Raspbian.


ти ssh чи підключишся безпосередньо до свого pi?
СтівІрвін

Привіт те, що ви, можливо, хотіли, може надати dvtm. brain-dump.org/projects/dvtm
cgte

Відповіді:


8

Просто використовуйте Alt + F1-F12, щоб у вас було 12 різних вкладок консолі без запуску графічного інтерфейсу


це власне варіант, яким я зараз користуюся :)
pasadinhas

1
Це не працює на Raspbian, немає жодного входу в жоден з інших ttys.
AndreKR

9

Якщо ви знаходитесь на консолі (додається клавіатура та екран), ви повинні мати можливість використовувати систему віртуальної консолі Linux для перемикання між декількома терміналами за допомогою (ctrl-) alt-F1 через F12 і більше зі зрушенням.

Кількість налаштованих терміналів та кількість їх, що мають процеси getty (які вимагають входу та пароля), залежить від конфігурації .


2
+1, тому що при безпосередньому підключенні до машини це "стандартний" спосіб отримати ще один логін, і не вимагає встановлення екрана / tmux ..
Kiirani

7

Навіть краще, ніж screenє (на мій погляд) tmux. Ви можете встановити його через sudo apt-get install tmux. Ознайомтеся також із сторінкою пошуку man tmux.

Ви можете розпочати це, ввівши tmuxодну із своїх консолей (див. Відповідь XTL).

Ось найважливіші команди ( C-b dозначає: натисніть кнопку керування та B одночасно, потім натисніть D):

  • C-b d сеанс відсторонення
  • tmux attach на оболонці, щоб знову приєднати запущений сеанс
  • C-b " розділити поточний кадр по горизонталі (нова оболонка запущена)
  • C-b % розділити поточний кадр вертикально (запускається нова оболонка)
  • C-b arrow (up, down, left, right) переходити між вікнами в поточному кадрі
  • C-b c новий кадр (запускається нова оболонка)
  • C-b n наступний кадр
  • C-b l останній кадр
  • C-b bвідправити C-bдо запущеної програми

Сильний прихильник tmux теж тут. Конфігурація рядка статусу набагато простіша, і вона краще обробляє перемальовки.
кодеї

1
Слід зазначити, що tmux не має такої поведінки, як екран щодо приєднання сеансу до декількох VT ("screen -x")
Kiirani

3

Ви також можете це зробити з екраном. За допомогою екрана ви навіть можете відірватися від сеансу на екрані, вийти з системи, увійти в систему, а потім приєднатися до сеансу на екрані, нічого не втрачаючи. Програми працюватимуть і надалі, а весь вихід буде продовжувати відображатися на терміналах, від яких ви відключилися.

Кілька посилань на екрани навчальних посібників:

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

Посилання на тему з корисними порадами .screenrc:

https://bbs.archlinux.org/viewtopic.php?id=55618

Специфічний підручник з Raspberry Pi:

http://raspi.tv/2012/using-screen-with-raspberry-pi-to-avoid-leaving-ssh-sesions-open


3
  1. Якщо скрипт, який ви хочете запустити, не взаємодіє з користувачем або потребує введення даних,

    Ви можете використовувати &команду, яка надсилає скрипт на задній план

    Ось приклад.

    pi@raspberrypi ~ $php code1 &
    

    Це відправить сценарій на задній план, де він буде продовжувати працювати.

  2. Якщо ви запустили ssh у свій термінал, ви можете двічі в одному і тому ж користувачі мати два термінали.

  3. Якщо ви хочете відкрити кілька терміналів із сеансу ssh,

    Ви повинні подивитися на екран або ще краще встановити, byobuякий є обгорткою навколо екрану.

    byobu - це обгортка, яка дозволяє легко відкривати нові екрани за допомогою простої функціональної клавіші замість комбінації клавіш із ctrl-a. Він також показує рядок стану з усіма відкритими віртуальними терміналами, які можна назвати.

    Ще однією приємною особливістю є той факт, що весь ваш екран може залишатися в режимі спокою, коли ваше ssh-з'єднання відключено. Ви просто знову підключитесь через ssh і подзвоните byobu, і все як раніше.

Сподіваюся, це допомагає.


2

Для повноти ще одним варіантом є використання byobu . Це зручний шар на екрані GNU . Це забезпечує гарні настройки за замовчуванням, і це, на мій сенс, простіше у використанні. Я особисто використовую його на своєму Rapsberry Pi, і він працює просто чудово. Щоб встановити його, просто введіть:

$ sudo apt-get install byobu

Після встановлення налаштуйте його за допомогою:

$ byobu-config

Ви можете вибрати, чи запустити його автоматично під час входу в систему та переключити аплети із повідомленнями про стан ( час роботи, завантаження, дата ... )

введіть тут опис зображення

Як зауваження, такий тип віртуальної консолі також корисний для спільного введення / виводу однієї консолі між різними користувачами на різних машинах (ви можете назвати це обмін екраном у текстовому режимі ).


Я спробував byobou днями і не був задоволений. Керування за допомогою функціональних клавіш було дуже неміцним. Не працював на OS X, також були проблеми, коли під Debian. Я дотримуюся tmux та його команд. Функціональні клавіші також стикаються з mc (опівночі командир).
Арн

Що стосується конфлікту функціональних клавіш з mc , ви можете змінити їх на byobu (ви можете легко вибрати між двома різними режимами через byobu-config).
Лоран Грегоар

2

Оскільки ваша початкова вимога полягала у запуску PHP-скрипту у фоновому режимі, ви можете використовувати команду nohup. Приклад:

$ nohup php myscript.php &

Після запуску команда, вказана як аргумент командного рядка nohup, виконується у фоновому режимі , а її вхід / вихід від’єднуються від терміналу, який її запустив, щоб запобігти SIGHUPпередачі сигналу (звідси nohupімені) у фоновий процес, коли ви виходите з пускової консолі (сигнал зазвичай змушує програму вийти). Вихідні дані переспрямовуються у файл (за замовчуванням nohup.out).

Для отримання додаткової інформації: man nohup.

Для кращої та повнішої відповіді, можливо, ви захочете повністю «демонізувати» свою програму. Можливо, ви можете знайти ресурси в Інтернеті, які пояснюють, як це зробити за допомогою скриптів PHP.


Деякі оболонки (bash, zsh?) Також мають команду disownдля запобігання зависання вибраних фонових процесів.
XTL
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.