我正在尝试使用bash
自动启动特定服务当使用init.d(/etc/init.d/openvpn.custom)启动服务时,它会使用用户名然后输入密码 - 然后连接
使用已安装的版本无法使用auth-user-pass from-file,并且由于依赖性而无法升级
所以我正在尝试编写一个执行init.d脚本的简单bash脚本,稍微睡一会儿,输入用户名,返回,稍微睡一觉,输入密码 - 你就得到了流程。
喜欢http://pastebin.com/qWHX7Di5
我已经尝试过echo,但它似乎有效
这是针对一个相当传统的防火墙,我被要求保持连接。
这甚至可能吗?
答案 0 :(得分:1)
我会使用expect
代替bash
。如果您还需要执行其他任务,您仍然可以在bash
内拨打电话。
在expect
中,脚本将类似于以下内容(未经测试):
#!/usr/bin/expect -f
set username "username"
set password "password"
spawn /etc/init.d/openvpn.custom start
expect "Username:"
send "$username\r"
expect "Password:"
send "$password\r"
expect eof
您想要更改expect "Username:"
& expect "Password:"
行以匹配init.d
脚本输出的实际登录提示。
有关详细信息,请参阅expect
man page。
答案 1 :(得分:0)
您可以尝试使用here-doc:
/path/to/init.d << END
$username
$password
END