Запуск процесса linux в фоновом режиме

Я пытаюсь создать скрипт, который запускает некоторые программы

startup.sh

knetworkmanager
emesene
keepassx

проблема в том, что когда я запускаю скрипт, он только начинается knetworkmanager. Это потому, что он начнет его, а затем ждать, пока он не закончит. Как запустить программу, не дожидаясь ее запуска? Я не думаю, что могу просто добавить " & " после каждой команды, потому что все процессы все равно будут убиты, когда скрипт будет завершен.

8
задан Bart van Heukelom
08.05.2023 21:52 Количество просмотров материала 2604
Распечатать страницу

6 ответов

когда оболочка, запускающая скрипт, завершает работу, она посылает сигнал HUP запущенным процессам. Если они не поймают сигнал, они прекратят. Так ли просто использовать & достаточно, зависит от приложения. Для безопасности используйте nohup так:

nohup your-program >>/dev/null 2>>/dev/null &

смотрите man-страницы для nohup и kill для более подробной информации или прочитайте статья Википедии о nohup.

14
отвечен Kim 2023-05-10 05:40

нет, процессы не должны быть убиты, когда сценарий закончен, если вы используете &. Попробовать его.

knetworkmanager &
emesene &
keepassx &
10
отвечен Adam Bellaire 2023-05-10 07:57

основываясь на приведенных вами примерах программ, похоже, что вы пытаетесь запустить некоторые программы при запуске KDE. Если это так, взгляните на функцию автозапуска KDE. в этой статье подробнее и инструкции по добавлению программ в автозапуск.

2
отвечен Doug Harris 2023-05-10 10:14

как говорили другие, используйте & оператор, чтобы поместить команду в фоновый режим во время запуска оболочки.

Если вы хотите, чтобы составные части запускались по порядку (а не одновременно), но все равно хотите, чтобы все было заземлено, используйте подобласть:

(knetworkmanager; emesene; keepassx) &

или, если вы хотите, чтобы операция каждой части была обусловлена успешным завершением предыдущей части, используйте:

(knetworkmanager && emesene && keepassx) &
1
отвечен dmckee 2023-05-10 12:31

добавление ' & ' после каждой команды определенно будет работать. Это будет означать, что эти сценарии или программы будут продолжать работать даже после startup.sh отделки.

0
отвечен 2023-05-10 14:48

другой вариант - запустить процесс как демон, используя /sbin / start-stop-daemon

0
отвечен Abhinav 2023-05-10 17:05

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх