DEVOPSITSEC Telegram 1565
🧠 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



tgoop.com/DevOPSitsec/1565
Create:
Last 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, если только вы намеренно не хотите завершить текущий процесс оболочки.

BY DevOps


Share with your friend now:
tgoop.com/DevOPSitsec/1565

View MORE
Open in Telegram


Telegram News

Date: |

5Telegram Channel avatar size/dimensions Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. Activate up to 20 bots So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. Today, we will address Telegram channels and how to use them for maximum benefit.
from us


Telegram DevOps
FROM American