LINUX.ORG.RU

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

 , ,


1

4

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

bash -c 'command &'

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

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

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

★★★

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

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

Werenter ★★★
() автор топика
Ответ на: комментарий от 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 ★★★
() автор топика

Используй /etc/xdg/autostart.

anonymous
()

disown

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

Тем более на Android systemd отсутствует

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

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

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

man systemd-run

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

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

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

anonymous
()

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

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

aol ★★★★★
()

nohup, зачем тебе ещё один bash фоном? Я понимаю он не особо большой, но нафига оверхед?

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

nohup иногда все равно завершает программу.

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

Кучу раз уже расписывали чем он не нормальный за последние 10 лет, пора бы уже перестать ниче не знать.

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

покажи на кукле куда тебя системдэ трогал

anonymous
()

Макрос, запускающий команду в фоне по 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
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.