Ваш синтаксис в порядке.Проблема в том, что у скрипта больше нет команд для запуска после отправки пароля, поэтому ожидаемый скрипт завершается, и это убивает openvpn.
Что вам нужно сделать после отправки пароля?
Если вам просто нужно сохранить работу openvpn, сделайте следующее:
#!/usr/bin/expect
spawn openvpn --config peter.ovpn
expect -exact "Enter Private Key Password: "
send -- "mypassword\r"
set timeout -1
expect eof
-1
означает"бесконечен", и expect eof
означает, что вы ожидаете завершения порожденного процесса, прежде чем ожидаемый сценарий может завершиться.