Почему завершается неинтерактивный процесс bash влияет или не влияет на его дочерний процесс при запуске сценария?

Лучший способ субъективен, но есть несколько:

  1. Сделайте свой собственный ISO, уже содержащий модули VBox для включенного ядра. (См. [1], [2] или [3]) В целом, это предпочтительный вариант, если вы можете и если вы собираетесь использовать его часто, но если вы собираетесь использовать его только один раз, это можно считать пустой тратой времени.

  2. Вместо этого загрузите скрипты на сайт pastebin или файловый хост, или даже просто запустите простой HTTP-сервер на вашем хосте и загрузите их в виртуальную машину. darkhttpd - один из простых HTTP-серверов, который имеет размер менее 100 КБ, и вы просто запускаете его, указывая ему путь к каталогу для обслуживания по HTTP, и может быть самым простым и предпочтительным для более разовых вещей, как в вашем случае.

  3. Или просто сделайте то, что сделали вы. Это работает во многих случаях, но вы должны сделать все возможное, чтобы избежать этого, потому что это может сломаться. Никогда не делайте этого вне среды установки.

1
28.05.2018, 06:53
1 ответ

Si realmente solo eliminó el shell, debe hacer un informe de error contra bash.

Dado que los shells modernos habilitan automáticamente el control de trabajos para shells interactivos,

./script1&

crea un nuevo trabajo con una identificación de grupo de proceso propia.

El shell espera el programa evincey si llama:

kill -9 $!

solo se eliminará el shell y evincecontinuará ejecutándose.

Sin embargo, si llama:

kill %1

Esto elimina todo el trabajo, incluido evince.

0
28.01.2020, 00:34

Теги

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