diff --git a/examples.txt b/examples.txt
index fe258e8..b6adc45 100644
--- a/examples.txt
+++ b/examples.txt
@@ -69,6 +69,6 @@ Epoch
HTTP клиенты (HTTP Clients)
HTTP серверы (HTTP Servers)
Порождающие процессы (Spawning Processes)
-Exec'ing Processes
+Исполняющие процессы (Exec'ing Processes)
Signals
Exit
diff --git a/examples/execing-processes/execing-processes.go b/examples/execing-processes/execing-processes.go
index 18eb283..4108d1b 100644
--- a/examples/execing-processes/execing-processes.go
+++ b/examples/execing-processes/execing-processes.go
@@ -1,12 +1,11 @@
-// In the previous example we looked at
-// [spawning external processes](spawning-processes). We
-// do this when we need an external process accessible to
-// a running Go process. Sometimes we just want to
-// completely replace the current Go process with another
-// (perhaps non-Go) one. To do this we'll use Go's
-// implementation of the classic
-// exec
-// function.
+// В предыдущем примере мы рассмотрели [порождение внешних
+// процессов](spawning-processes). Мы делаем это,
+// когда нам нужен внешний процесс, доступный для
+// запущенного процесса Go. Иногда мы просто хотим
+// полностью заменить текущий процесс Go другим
+// (возможно, не Go). Для этого мы будем использовать
+// реализацию Go-имплементацию классической функции
+// exec
.
package main
@@ -18,31 +17,30 @@ import (
func main() {
- // For our example we'll exec `ls`. Go requires an
- // absolute path to the binary we want to execute, so
- // we'll use `exec.LookPath` to find it (probably
- // `/bin/ls`).
+ // Для нашего примера мы выполним `ls`. Go требует
+ // абсолютного пути к двоичному файлу, который мы
+ // хотим выполнить, поэтому мы используем `exec.LookPath`,
+ // чтобы найти его (вероятно, `/bin/ls`).
binary, lookErr := exec.LookPath("ls")
if lookErr != nil {
panic(lookErr)
}
- // `Exec` requires arguments in slice form (as
- // apposed to one big string). We'll give `ls` a few
- // common arguments. Note that the first argument should
- // be the program name.
+ // `Exec` требует аргументы в форме среза
+ // (в сочетании с одной большой строкой). Мы используем в `ls`
+ // несколько общих аргументов. Обратите внимание, что
+ // первым аргументом должно быть имя программы.
args := []string{"ls", "-a", "-l", "-h"}
- // `Exec` also needs a set of [environment variables](environment-variables)
- // to use. Here we just provide our current
- // environment.
+ // `Exec` также нужен набор [переменных среды](environment-variables)
+ // для использования. Здесь мы просто предоставляем
+ // нашу текущую среду.
env := os.Environ()
- // Here's the actual `syscall.Exec` call. If this call is
- // successful, the execution of our process will end
- // here and be replaced by the `/bin/ls -a -l -h`
- // process. If there is an error we'll get a return
- // value.
+ // Вот фактический вызов `syscall.Exec`. Если этот вызов
+ // будет успешным, выполнение нашего процесса на этом
+ // закончится и будет заменено процессом `/bin/ls -a -l -h`.
+ // В случае ошибки мы получим возвращаемое значение.
execErr := syscall.Exec(binary, args, env)
if execErr != nil {
panic(execErr)
diff --git a/examples/execing-processes/execing-processes.sh b/examples/execing-processes/execing-processes.sh
index 7c3e4c5..e7c9a52 100644
--- a/examples/execing-processes/execing-processes.sh
+++ b/examples/execing-processes/execing-processes.sh
@@ -5,7 +5,8 @@ drwxr-xr-x 4 mark 136B Oct 3 16:29 .
drwxr-xr-x 91 mark 3.0K Oct 3 12:50 ..
-rw-r--r-- 1 mark 1.3K Oct 3 16:28 execing-processes.go
-# Note that Go does not offer a classic Unix `fork`
-# function. Usually this isn't an issue though, since
-# starting goroutines, spawning processes, and exec'ing
-# processes covers most use cases for `fork`.
+# Обратите внимание, что Go не предлагает классическую
+# Unix функцию `форка`. Обычно это не проблема,
+# так как запуск горутин, порождение процессов и
+# выполнение процессов покрывают большинство случаев
+# использования `форка`.