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



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: |

Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. 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. The visual aspect of channels is very critical. In fact, design is the first thing that a potential subscriber pays attention to, even though unconsciously. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. With the “Bear Market Screaming Therapy Group,” we’ve now transcended language.
from us


Telegram DevOps
FROM American