LINUX.ORG.RU

Как запустить программу в фоне без привязки к терминалу?

 , ,


1

4

Есть ли способ лучше, чем что-то типа такого:

bash -c 'command &'

Если использовать просто запуск в фоне, то программа закроется при закрытии терминала. nohup работает странно. Или проще написать свой костыль на C?

Описанный выше способ не очень-то удобный.

Upd. Решение найдено благодаря unDEFER.

★★★

Последнее исправление: Dimez (всего исправлений: 4)
Ответ на: комментарий от Bfgeshka

Оба варианта работают плохо, рабочий способ я описал в ОП, но он неудобный. Может есть решение получше, но походу придётся писать костыль на C.

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

Они делают то, что мне не нужно. Рабочий способ, который не делает лишнего, приведён в ОП, но он неудобный. По сути вопрос в том, есть ли готовая утилита под это дело или её придётся писать самому (кода немного, но её тогда придётся таскать между разными компьютерами).

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

Python везде сейчас предустановлен.

Так же можно написать init-скрипт/systemd-unit.

Непонятно, чего ты хочешь. Чем не устраивает способ, приведённый в начале?

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

Во первых нет, а во вторых скрипт предустановлен не будет. systemd-юнит вообще не в тему, это для автоматизации, а не разового запуска.

Способ в начале не устраивает ломающимся напрочь автодополнением в командной оболочке.

Werenter ★★★
() автор топика

Делаешь «&», а потом exit.

Не знаю как exit из терминала, но при выходе из su, процесс остаётся живым и не привязанным к терминалу.

unDEFER ★★★★★
()
Последнее исправление: unDEFER (всего исправлений: 1)
Ответ на: комментарий от Werenter

Ненужное усложнение. Мне нужно просто запустить программу и забыть про неё (читай: «сделать демоном»).

Вот ровно для этой цели авторы OpenSim(ulator) рекомендовали запускать его под screen :) Так что, может, и не настолько ненужное…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от unDEFER

Да, в bash работает, проверил. Но он не является моей основной оболочкой, я его использую исключительно для башизмов. Видимо из-за этого команда в ОП тоже срабатывает (которая запускает bash).

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

Много горячих клавиш, чтобы свернуть скрин. Это же вим какой то! Думайте, что предлогаете для айти!!!

Ещё-ба alt+f2 предложили! вообще уже

anonymous
()

то программа закроется при закрытии терминала

открой для себя disown :)

aol ★★★★★
()

Макрос, запускающий команду в фоне по Alt+L.

~/.inputrc

"\el": "\C-a ( \C-e >/dev/null 2>&1 & )\C-j"
anonymous
()
Ответ на: комментарий от kirill_rrr
  1. Выводит в файл.
  2. Иногда программа всё равно закрывается, даже с nohup.
Werenter ★★★
() автор топика
Ответ на: комментарий от serg002

Ты додик, как люди должны были догадаться, что речь идет об андроид? Тегировать надо

Янеон, но.

Люди то знают, что юниксвей несет свободу контекста. А системД-еретик нет. И поэтому еретик-неосилятор, такой как ты, помнит только про свой системД-котёл. Покайса!11

anonymous
()
8 июня 2025 г.

Проще написать нормальную ОС, в которой у процессов нет зависимости parent-child.

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария