Описание тега xinerama
Основные понятия ...
Для запуска двух скриптов после того, как друг друга вы поместите двоеточие между ними: script1 аргументы ...; script2 аргументы ...
или в скрипте вы также можете поместить их на две строки так:
#!/Бен/ш
script1 аргументы ...
script2 аргументы ...
Это также работает, если вы хотите запустить их в фоновом режиме. Вы просто положить их в оболочку и поставить в том случае, когда в фоновом режиме: (script1 аргументы ...; script2 аргументы ...) &
или:
#!/Бен/ш
(
script1 аргументы ...
script2 аргументы ...
) &
Если вы хотите запустить второй скрипт, только если первый скрипт и выхода успешно (с кодом 0
) можно заменить двоеточие с &&
: script1 аргументы ... && script2 аргументы ...
... с nohup и
Но nohup и
хочет запустить одну команду и subshell-это не одна команда, это оболочка-конструкция, которая работает только в оболочке. Но мы можем начать новую оболочку, которая выполняет два сценария, пройти, которые как одна команда nohup и
и собрал все это в фоновом режиме:
#!/Бен/ш
аргументы nohup и ш-с 'script1 ...; script2 аргументы ...' &
Если у вас есть переменные в массив args ...
вам придется использовать двойные кавычки, и вы должны проявлять особую осторожность, чтобы избежать их правильно, так что вот еще один способ:
... с двойной вилкой
Оболочка знает, только и заботится о его прямых детей. Вы предупреждены, если есть еще процессы, работающие в фоновом режиме, когда вы пытаетесь покинуть, и этих прямых детей убивают, если вы действительно выйдите из оболочки. Решение-поставить оболочку на фоне того, что сама ставит свои команды в фоновом режиме. Свою оболочку только знаю про оболочку, а не о команде. Но вы не можете полагаться на перенаправление магия nohub
такой и должна создать свой собственный редирект:
#!/Бен/ш
(
# внешний подуровень, будет известно вашей оболочки
(
# внутренний подуровень, "скрытых" из интерактивной оболочки
script1 "$аргументы" ... > ~/script1.поток stdout.журнал 2> ~/script1.поток stderr.журнал
script2 "$аргументы" ... > ~/script2.поток stdout.журнал 2> ~/script2.поток stderr.журнал
# обратите внимание, что вы можете сделать нормальное цитирование здесь
) &
) &