породите совершенно отдельный процесс в Linux через удар

У меня должен быть сценарий, выполняются (удар или жемчуг или php, любой сделает), другая команда, и затем выйдите, в то время как другая команда все еще работает и выходит самостоятельно. Я мог запланировать через при команде, но был любопытен, если бы был более легкий путь.

14
задан Cœur 5 August 2017 в 10:20
поделиться

6 ответов

#!/bin/sh

your_cmd &

echo "started your_cmd, now exiting!"

Подобные конструкции существуют для perl и php, но в sh / bash очень легко запустить другую команду в фоновом режиме и продолжить.

править

Очень хорошим источником для общих манипуляций с процессами являются все сценарии запуска в /etc/init.d . Они выполняют всевозможные хитрые уловки, такие как отслеживание идентификаторов идентификаторов, выполнение базовых команд запуска / остановки / перезапуска и т. Д.

24
ответ дан 1 December 2019 в 06:08
поделиться

& ?

    #!/usr/bin/bash
    # command1.sh: execute command2.sh and exit
    command2.sh &
4
ответ дан 1 December 2019 в 06:08
поделиться

Пока вы упомянули Perl:

fork || exec "ls";

... где «ls» вообще что угодно. Повторите столько команд, сколько вам нужно, чтобы выстрелить.

3
ответ дан 1 December 2019 в 06:08
поделиться

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

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

См. аналогичное обсуждение на stackoverflow: как запустить команду в фоновом режиме ...

14
ответ дан 1 December 2019 в 06:08
поделиться

Обычный способ запустить команду и сохранить ее выполнение после выхода из системы - использовать nohup (1) . nohup предотвращает получение данной командой сигнала HUP при выходе из оболочки. Вам также необходимо работать в фоновом режиме с помощью суффикса команды амперсанд (&).

$ nohup some_command arg1 arg2 &
5
ответ дан 1 December 2019 в 06:08
поделиться

Я не совсем уверен, что это то, что вы ищете, но вы можете фоновый процесс, выполняемый в оболочке, добавив символ амперсанда (&) в качестве последнего символа команды.

Итак, если у вас есть сценарий, a.sh

и a.sh должны запускать отдельный процесс, например, выполнить сценарий b.sh, вы должны:

b.sh &
4
ответ дан 1 December 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: