LINUX.ORG.RU
решено ФорумAdmin

ssh. Запуск приложений от имени локальной консоли.

 ,


0

1

Есть машина с ssh. Как запускать приложения от имени локального пользователя? Проблема в том, что например поднимая виртуальную машину через

vboxmanage startvm "Ubuntu_minecraft"
, после разрыва ssh-сессии аварийно завершается и виртуальная машина, так как привязана не к локальной консоли. Собственно вопрос как это сделать «изнутри», чтобы не нужно было держать соединение. Вопрос не только про поднятие виртуальной машины, а вообще про любые подобные задачи.


Да проще же всё. Чтобы понять, что делать - нужно сначала понять причину. Причина банальна: софтинка у тебя не делает detach от консоли. Тут, в принципе, 2 варианта:

1) использовать screen.

2) стартовать через скрипт. Например: /usr/local/bin/start_vm_UM

____

#!/bin/bash

vboxmanage startvm «Ubuntu_minecraft» 01>>/var/log/Ubuntu_minecraft 02>>/var/log/Ubuntu_minecraft &

/bin/sleep 10

____

10 секунд достаточно, чтобы софтинка успела отвязаться от консоли. Если всё-равно будет вылетать, сделай примерно так:

nohup sudo -u USER -g GROUP /usr/local/bin/start_vm_UM

stdout/stderr будет дописываться в конец файла /var/log/Ubuntu_minecraft (права только соответствующие выстави) - и можно будет просматривать чего и как.

slamd64 ★★★★★
()
Ответ на: комментарий от meklon
vboxmanage startvm Ubuntu_minecraft >>/var/log/Ubuntu_minecraft 2>>/var/log/Ubuntu_minecraft & disown

То же самое, только чуть менее костыльно. При желании можно засунуть в скрипт либо alias.

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Поясните,пожалуйста, что делает кусок >>/var/log/Ubuntu_minecraft 2>>/var/log/Ubuntu_minecraft?

Нельзя ли его выкинуть, если логи не интересуют? Правильно ли я понимаю, что для общего решения это будет выглядеть как appname & disown?

meklon
() автор топика
Ответ на: комментарий от meklon

Поясните,пожалуйста, что делает кусок >>/var/log/Ubuntu_minecraft 2>>/var/log/Ubuntu_minecraft?

Перенаправляет stdout (т. е., выводимые на консоль сообщения) в /var/log/Ubuntu_minecraft (>>/var/log/Ubuntu_minecraft); перенаправляет stderr (сообщения об ошибках) туда же. К слову, правильнее написать так:

>>/var/log/Ubuntu_minecraft 2>&1
. '>>' — не перезаписывать существующий файл, а дописывать в конец.

Нельзя ли его выкинуть, если логи не интересуют?

Можно

Правильно ли я понимаю, что для общего решения это будет выглядеть как appname & disown?

Правильно

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Это прекрасно) а еще жалуются, что на ЛОРе фиг помощи дождешься) тема решена) благодарю всех за пояснения. Самый сложный случай, когда не знаешь где гуглить. Читай man это хорошо, когда знаешь, что читать)

meklon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.