Exec что это
Функция exec() (execute) загружает и запускает другую программу. Таким образом, новая программа полностью замещает текущий процесс. Новая программа начинает свое выполнение с функции main . Все файлы вызывающей программы остаются открытыми. Они также являются доступными новой программе. Используется шесть различных вариантов функций exec .
#include int execl(char *name, char *arg0, . /*NULL*/); int execv(char *name, char *argv[]); int execle(char *name, char *arg0, . /*,NULL, char *envp[]*/); int execve(char *name, char *arv[], char *envp[]); int execlp(char *name, char *arg0, . /*NULL*/); int execvp(char *name, char *argv[]);
- l (список). Аргументы командной строки передаются в форме списка arg0, arg1. argn, NULL . Эту форму используют, если количество аргументов известно;
- v (vector). Аргументы командной строки передаются в форме вектора argv[] . Отдельные аргументы адресуются через argv [0], argv [1]. argv [n] . Последний аргумент ( argv [n] ) должен быть указателем NULL ;
- p (path). Обозначенный по имени файл ищется не только в текущем каталоге, но и в каталогах, определенных переменной среды PATH ;
- e (среда). Функция ожидает список переменных среды в виде вектора ( envp [] ) и не использует текущей среды.
#include int main(int argc, char *argv[])
Эта программа выводит на экран строку, переданную ей в качестве аргумента. Пусть она называется hello . Она будет вызвана из другой программы с помощью функции execl() . Код вызывающей программы приведен ниже :
#include #include int main(int argc, int *argv[])
В строке execl() аргументы указаны в виде списка. Доступ к ним также осуществляется последовательно. Если использовать функцию execv() , то вместо списка будет указан вектор аргументов:
#include #include int main(int argc, int *argv[])
Команда exec в Linux
В Linux команда exec , выполняющая команды из самого Bash, является мощным инструментом замены процессов, гибкого протоколирования сценариев.

Если команда exec выполнена успешно, она не возвращается к вызывающему процессу.
Содержание
- Синтаксис
- Опции
- Использование команды exec в Linux
- Базовое использование (замена процесса)
- Утилита с дополнительной командой в качестве аргумента
- Замена текущего сеанса оболочки
- Запуск скриптов в чистой среде
- Выполнение утилиты с командой поиска
Синтаксис
exec [опции] [команда [аргументы]] [перенаправление]Опции
-c Выполнение команды в чистой среде -l Передача тире — в качестве нулевого аргумента -a [имя] Передача имя в качестве нулевого аргумента
Команда exec не создает новый процесс. Когда мы запускаем утилиту из терминала, текущий терминальный процесс заменяется командой, которая предоставляется в качестве аргумента.
Использование команды exec в Linux
Базовое использование (замена процесса)
Для замены процесса открывается терминал и перечисляются запущенные процессы:
oleg@mobile:~:$ ps PID TTY TIME CMD 187005 pts/0 00:00:00 bash 190994 pts/0 00:00:00 ps oleg@mobile:~:$Вывод показывает текущую запущенную оболочку Bash и команду ps . Оболочка Bash имеет уникальный PID.
Для подтверждения можно проверить идентификатор текущего процесса:
oleg@mobile:~:$ echo $$ 187005 oleg@mobile:~:$PID совпадает с выводом команды ps , указывая на то, что это текущий процесс Bash.
Утилита с дополнительной командой в качестве аргумента
В этом режиме exec пытается выполнить аргумент как команду, передавая оставшиеся аргументы, если они есть, этой команде и управляя перенаправлениями, если таковые имеются.
oleg@mobile:~:$ bash non-network local connections being added to access control list oleg@mobile:~:$ exec ls abc.txt backgrounds Desktop Documents store www Документы Музыка Apps bin Directory Downloads tmp Yandex.Disk Загрузки Общедоступные aur ChestitaBabaMarta.jpg docs mailbox webprojects Видео Изображения Шаблоны oleg@mobile:~:$Утилита exec ищет путь, указанный в переменной $PATH с необходимой исполняемой командой. Если команда не найдена, утилита, а также оболочка завершают работу с ошибкой.
Замена текущего сеанса оболочки
Проверяем текущий PID оболочки:
oleg@mobile:~:$ echo $$ 179575 oleg@mobile:~:$Используем утилиту для переключения в оболочку Bourne:
oleg@mobile:~:$ exec sh oleg@mobile:~:$На другой вкладке проверяем PID процесса Bourne Shell:
oleg@mobile:~:$ ops -ae | grep "\bsh\b"| grep "\bsh\b" 179575 pts/0 00:00:00 sh oleg@mobile:~:$Был заменён процесс Bash.
Выход из Bourne Shell завершит сеанс терминала.
Запуск скриптов в чистой среде
Для сброса всех переменных окружения и чистого запуска используется опция -c :
oleg@mobile:~:$ exec -c printenvВ связи с тем, что команда printenv перечисляет переменные окружения, то при передаче её в качестве аргумента вывод будет пустым.
Выполнение утилиты с командой поиска
Утилиту exec можно использовать для выполнения операций: grep , cat , mv , cp , rm и других над файлами, найденными командой find .
Для примера найдём все файлы * , содержащие слово iwd в каталоге ~/webprojects/linuxcookbook.ru/artiles :
oleg@mobile:~:$ find ~/webprojects/linuxcookbook.ru/articles -name "*" -type f -exec grep -l iwd <> \; /home/oleg/webprojects/linuxcookbook.ru/articles/utilita-iwctl-arch-linux /home/oleg/webprojects/linuxcookbook.ru/articles/RCS/utilita-iwctl-arch-linux,v oleg@mobile:~:$Здесь для поиска обычных текстовых файлов была указана опция -type f . Затем мы использовали опцию -exec для выполнения команды grep в списке файлов, возвращённых командой find .
Точка с запятой в конце ; заставляет команду grep исполняться для каждого файла по очереди, поскольку <> заменяется именем текущего файла. Обратите внимание, что обратный слэш необходим для того, чтобы точка с запятой не интерпретировалась оболочкой.
Заключение
В этой статье были рассмотрены основные варианты использования встроенной в Bash команды exec . Она может быть вам очень полезна.
Linux. Команда exec
Запуск сценария из командной строки приводит к запуску новой оболочки, которая и будет выполнять список команд, содержащихся в файле сценария. Другими словами, любой сценарий (или программа) запускается как дочерний процесс родительской командной оболочки. Однако, программа, выполняемая по команде exec , заменяет текущую программу, и поэтому в системе остается на один выполняемый процесс меньше.
Действие, когда какая либо команда или сама командная оболочка инициирует (порождает) новый подпроцесс, чтобы выполнить какую либо работу, называется ветвлением (forking) процесса. Новый процесс называется «дочерним» (или «потомком»), а породивший его процесс — «родительским» (или «предком»). В результате и потомок и предок продолжают исполняться одновременно — параллельно друг другу.
Общая форма команды exec :
exec программаПусть нам нужно настроить среду для выполнения определенной задачи, например, для работы с базой данных: заменить приглашение в переменной PS1 на DataBase , добавить в переменную PATH каталог bin базы данных, изменить переменную CDPATH (чтобы было удобнее использовать команду cd ) и т.п.
#!/bin/bash # # Установить и экспортировать переменные, связанные с базой данных # HOME=/usr/database BIN=$HOME/bin RPTS=$HOME/rpts DATA=$HOME/data PATH=$PATH:$BIN CDPATH=:$HOME:$RPTS PS1="DataBase: " export HOME BIN RPTS DATA CDPATH PS1 # запустить новую оболочку с замещением текущего сценария exec /bin/bashС помощью команды exec можно переназначить стандартный ввод ( stdin ) и стандартный вывод ( stdout ). Например, переназначим стандартный ввод:
$ exec < inputFile.txt # или exec 0< inputFile.txt
Любые последующие команды, читающие данные со стандартного ввода, будут читать их из файла inputFile.txt . Пример использования в сценарии:
#!/bin/bash exec 0< data.txt count=1 while read line ; do echo "Line $count: $line" count=$(( $count + 1 )) doneПереадресация стандартного вывода выполняется аналогично:
$ exec > outputFile.txt # или exec 1> outputFile.txt
Следует, однако, иметь в виду, что в обоих примерах команда exec применялась не для запуска новой программы на выполнение, а лишь для переназначения стандартного ввода или вывода.
Чтобы переназначить стандартный ввод обратно на терминал, достаточно ввести команду:
$ exec < /dev/tty
Аналогичным образом переназначается и стандартный вывод:
$ exec > /dev/tty
- Linux. Команда tee
- Перенаправление ввода-вывода
- Linux. Команда read
- Linux. Утилита xargs
- Автоматическое подключение по ssh из скрипта
- Linux. Команда echo
- Linux. Команда chmod
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Категории блога
Облако тегов- 1С:Предприятие (31)
- API (29)
- Bash (43)
- CLI (118)
- CMS (139)
- CSS (50)
- Frontend (75)
- HTML (66)
- JavaScript (150)
- Laravel (72)
- Linux (165)
- MySQL (76)
- PHP (125)
- React.js (66)
- SSH (27)
- Ubuntu (68)
- Web-разработка (509)
- WordPress (73)
- Yii2 (69)
- БазаДанных (95)
- Битрикс (66)
- Блог (29)
- Верстка (43)
- ИнтернетМагаз… (84)
- КаталогТоваров (87)
- Класс (30)
- Клиент (28)
- Ключ (28)
- Команда (84)
- Компонент (60)
- Конфигурация (63)
- Корзина (32)
- ЛокальнаяСеть (28)
- Модуль (34)
- Навигация (31)
- Настройка (140)
- ПанельУправле… (29)
- Плагин (33)
- Пользователь (26)
- Практика (101)
- Сервер (75)
- Событие (27)
- Теория (106)
- Установка (66)
- Файл (51)
- Форма (58)
- Фреймворк (192)
- Функция (36)
- ШаблонСайта (68)
Как удалить exec
Подлинный файл является одним из компонентов программного обеспечения NetZero Internet Accelerator, разработанного NetZero.
exec - это аббревиатура от NetZero accelerator executable
Exec.exe - это исполняемый файл (программа) для Windows. Расширение имени файла .exe - это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли exec.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.
Вот так, вы сможете исправить ошибки, связанные с exec.exe
- Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
- Обновите программу NetZero Internet. Обновление можно найти на сайте производителя (ссылка приведена ниже).
- В следующих пунктах предоставлено описание работы exec.exe.
Информация о файле exec.exe
Процесс NetZero Internet или ZCast или Juno Internet принадлежит программе NetZero Internet или Juno Internet от NetZero (www.netzero.net) или Juno.
Описание: exec.exe не является необходимым для Windows. Файл exec.exe находится в подпапках "C:\Program Files". Известны следующие размеры файла для Windows 10/8/7/XP 1,720,832 байт (40% всех случаев), 1,701,376 байт или 1,783,296 байт.
Это не файл Windows. Процесс можно деинсталлировать из панели инструментов. Поэтому технический рейтинг надежности 19% опасности.
Вы можете удалить Juno Internet или NetZero Internet, или попросить помощи у технической поддержки. Перейдите к Juno Internet или NetZero Internet в Панели управления Windows (раздел Программы и компоненты) для удаления программы, или перейдите к www.juno.com/support Службе Поддержки Клиентов.Если exec.exe находится в подпапках "C:\Users\USERNAME", тогда рейтинг надежности 22% опасности. Размер файла 102,672 байт. У процесса есть видимое окно. Нет более детального описания программы. Это не файл Windows.
Важно: Некоторые вредоносные программы маскируют себя как exec.exe, особенно, если они расположены в каталоге c:\windows или c:\windows\system32. Таким образом, вы должны проверить файл exec.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.
Комментарий пользователя
Пока нет комментариев пользователей. Почему бы не быть первым, кто добавить небольшой комментарий и одновременно поможет другим пользователям?
Лучшие практики для исправления проблем с exec
Аккуратный и опрятный компьютер - это главное требование для избежания проблем с exec. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.
Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.
Следующие программы могут вам помочь для анализа процесса exec.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным - шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.
exec сканер
Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.
Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.
SpeedUpMyPC бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.