.expect脚本在手动调用时运行,但不是由.service

时间:2017-07-27 17:52:17

标签: linux ubuntu ssh service expect

在Ubuntu 16.04.2服务器上,我有一个简单的期望脚本/etc/pipes.expect来设置通过服务器端口的vm路由。

以下是/etc/pipes.expect的内容:

#!/usr/bin/expect -f
sleep 60
spawn virsh start lucas
spawn virsh start ssix-project
spawn virsh start allsorter
sleep 300 #some time to boot the vms
spawn ssh -f -N -L [my_ip]:22003:localhost:22 lucas@ssix-project
expect  "*assword:*" { send "[pass1]\r" }
expect  "*yes/no*" {
            send "yes\r"
            expect  "*assword:*" { send "[pass1]\r" }
        }
spawn ssh -f -N -L [my_ip]:22004:localhost:22 lucas@allsorter
expect  "*assword:*" { send "[pass2]\r" }
expect  "*yes/no*" {
            send "yes\r"
            expect "*assword:*" { send "[pass2]\r"}
        }
spawn ssh -f -N -L [my_ip]:22002:localhost:22 lucas@lucas
expect  "*assword:*" { send "pass3\r" }
expect  "*yes/no*" {
            send "yes\r"
            expect "*assword:*" { send "pass\r"}
        }

如果我用以下方式调用脚本,脚本运行完美:

/etc/pipes.expectexpect /etc/pipes.expect/usr/bin/expect /etc/pipes.expect

ssh通过pipes.expect调用pipes.service时,virsh来电不会生效。让我感到误解的是,当手动或通过服务调用脚本时,pipes.service调用(第3行到第5行)都有效。

以下是我[Unit] Description=Spark service [Service] ExecStart=/usr/bin/expect /etc/pipes.expect [Install] WantedBy=multi-user.target 的内容:

import pandas as pd
PS:我已经尝试了很多方法让这个脚本在启动时运行,包括init.d,crontab,rc.local,似乎没有任何工作:(。任何人都可以点亮这里的东西吗?

感谢。

0 个答案:

没有答案