РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1441 of 1593 menu

Метод exec.Cmd.Wait

Метод exec.Cmd.Wait ожидает завершения процесса, запущенного с помощью exec.Cmd.Start. Он возвращает ошибку, если процесс завершился с ненулевым кодом выхода, или nil, если процесс завершился успешно. Метод должен быть вызван после Start и освобождает ресурсы, связанные с процессом.

Синтаксис

cmd.Wait()

Пример

Давайте запустим команду echo и дождемся ее завершения:

package main import ( "exec" "fmt" ) func main() { cmd := exec.Command("echo", "Hello, World!") err := cmd.Start() if err != nil { fmt.Println("Error starting command:", err) return } err = cmd.Wait() if err != nil { fmt.Println("Command finished with error:", err) } else { fmt.Println("Command finished successfully") } }

Результат выполнения кода:

"Command finished successfully"

Пример

Давайте запустим команду, которая завершится с ошибкой, и обработаем эту ситуацию:

package main import ( "exec" "fmt" ) func main() { cmd := exec.Command("false") err := cmd.Start() if err != nil { fmt.Println("Error starting command:", err) return } err = cmd.Wait() if err != nil { fmt.Println("Command finished with error:", err) } else { fmt.Println("Command finished successfully") } }

Результат выполнения кода:

"Command finished with error: exit status 1"

Пример

Давайте получим информацию о состоянии процесса с помощью ProcessState:

package main import ( "exec" "fmt" ) func main() { cmd := exec.Command("echo", "test") err := cmd.Start() if err != nil { fmt.Println("Error starting command:", err) return } err = cmd.Wait() if err != nil { fmt.Println("Command finished with error:", err) return } state := cmd.ProcessState fmt.Println("PID:", state.Pid()) fmt.Println("Exited:", state.Exited()) fmt.Println("System time:", state.SystemTime()) fmt.Println("User time:", state.UserTime()) }

Результат выполнения кода:

"PID: 12345" "Exited: true" "System time: 1.234ms" "User time: 1.234ms"

Смотрите также

  • метод exec.Cmd.Start,
    который запускает процесс
  • метод exec.Cmd.Run,
    который запускает процесс и ожидает его завершения
  • метод exec.Cmd.Output,
    который возвращает стандартный вывод процесса
  • метод os.Process.Wait,
    который ожидает завершения процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить