Warning: mkdir(): No space left on device in /var/www/hottg/post.php on line 59

Warning: file_put_contents(aCache/aDaily/2025-07-21/post/DevOPSitsec/--): Failed to open stream: No such file or directory in /var/www/hottg/post.php on line 72
🧠 DevOps-задача: неочевидное поведение `exec` в Bash @DevOps
TG Telegram Group & Channel
DevOps | United States America (US)
Create: Update:

🧠 DevOps-задача: неочевидное поведение `exec` в Bash

Вопрос: что произойдёт при выполнении следующего скрипта?


#!/bin/bash

echo "Start script"
exec sleep 10
echo "This will never be printed"


🔍 Варианты:
• a) Скрипт выведет обе строки и "заснёт"
• b) Скрипт выведет только первую строку
• c) Скрипт ничего не выведет
• d) Скрипт завершится с ошибкой

💡 Разбор:

Команда exec в Bash заменяет текущий процесс оболочки на указанную команду — в данном случае, sleep 10. Это значит:

• строка echo "Start script" выполнится
• строка exec sleep 10 заменит текущий процесс на sleep
• строка echo "This will never be printed" никогда не будет выполнена, потому что процесс уже заменён

Правильный ответ: b) Скрипт выведет только первую строку

📌 Вывод: exec — мощная, но коварная команда. Она не запускает процесс в фоне, а заменяет текущий, без возврата. Это может использоваться в:

• заменах PID 1 в контейнерах
• написании минималистичных init-оболочек
• утечках в long-running скриптах, если exec используется не по назначению

🛠️ Совет: если вы хотите просто запустить команду — не используйте exec, если только вы намеренно не хотите завершить текущий процесс оболочки.

🧠 DevOps-задача: неочевидное поведение `exec` в Bash

Вопрос: что произойдёт при выполнении следующего скрипта?


#!/bin/bash

echo "Start script"
exec sleep 10
echo "This will never be printed"


🔍 Варианты:
• a) Скрипт выведет обе строки и "заснёт"
• b) Скрипт выведет только первую строку
• c) Скрипт ничего не выведет
• d) Скрипт завершится с ошибкой

💡 Разбор:

Команда exec в Bash заменяет текущий процесс оболочки на указанную команду — в данном случае, sleep 10. Это значит:

• строка echo "Start script" выполнится
• строка exec sleep 10 заменит текущий процесс на sleep
• строка echo "This will never be printed" никогда не будет выполнена, потому что процесс уже заменён

Правильный ответ: b) Скрипт выведет только первую строку

📌 Вывод: exec — мощная, но коварная команда. Она не запускает процесс в фоне, а заменяет текущий, без возврата. Это может использоваться в:

• заменах PID 1 в контейнерах
• написании минималистичных init-оболочек
• утечках в long-running скриптах, если exec используется не по назначению

🛠️ Совет: если вы хотите просто запустить команду — не используйте exec, если только вы намеренно не хотите завершить текущий процесс оболочки.
🔥116👍4


>>Click here to continue<<

DevOps




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)


Warning: Undefined array key 3 in /var/www/hottg/function.php on line 115

Fatal error: Uncaught mysqli_sql_exception: Can't create/write to file '/tmp/#sql-temptable-a06e-5f0424-3091.MAI' (Errcode: 28 "No space left on device") in /var/www/hottg/function.php:216 Stack trace: #0 /var/www/hottg/function.php(216): mysqli_query() #1 /var/www/hottg/function.php(115): select() #2 /var/www/hottg/post.php(351): daCache() #3 /var/www/hottg/route.php(63): include_once('...') #4 {main} thrown in /var/www/hottg/function.php on line 216