Я использую Ansible для настройки экземпляра Ubuntu 18.04 (удаленного) и запуска определенных программ в пользовательской среде. У меня есть команда, которую я хотел бы выполнить внутри терминала на пульте дистанционного управления, которая требует, чтобы терминал оставался открытым.
Если я в Ubuntu и выполняю следующую команду, я получаю именно то, что ожидаю.
# DISPLAY=:0 nohup gnome-terminal -- roscore
- Использовать текущий дисплей для пользователя
- nohup, чтобы терминал не закрывался, если родительский терминал закрывается
- запускать новый экземпляр gnome-терминала
- - = запустить команду внутри нового экземпляра gnome-терминала
- roscore можно заменить любой командой, для которой требуется открыть поток в окне терминала
My * Задача 1030 * выглядит следующим образом при попытке воссоздать ту же команду
- name: Start terminal on remote machine
shell:
args:
cmd: DISPLAY=:0 nohup gnome-terminal -- roscore
executable: /bin/bash
При выполнении этой команды я получаю следующий подробный вывод
changed: [] => {
"changed": true,
"cmd": "DISPLAY=:0 nohup gnome-terminal -- roscore",
"delta": "0:00:00.243119",
"end": "",
"invocation": {
"module_args": {
"_raw_params": "DISPLAY=:0 nohup gnome-terminal -- roscore",
"_uses_shell": true,
"argv": null,
"chdir": null,
"creates": null,
"executable": "/bin/bash",
"removes": null,
"stdin": null,
"stdin_add_newline": true,
"strip_empty_ends": true,
"warn": true
}
},
"rc": 0,
"start": "",
"stderr": "nohup: ignoring input",
"stderr_lines": [
"nohup: ignoring input"
],
"stdout": "",
"stdout_lines": []
}
Когда я выполняю это, кажется, что терминал на мгновение открывается на удаленном компьютере, но не остается открытым. Что делает Ansible, чтобы закрыть сеанс удаленного терминала после выполнения команды?
Мне нужна задача Ansible, которая позволит открывать окно терминала на удаленном компьютере с Ubuntu 18.04. Целью Stretch было бы заставить команду работать в теперь открытом терминале.
Любая помощь будет оценена и рада уточнить, где это необходимо. Спасибо!