通过 maven 执行后退出 shell 脚本

Exit from shell script after execution via maven

我正在通过 Maven 执行以下 shell 脚本 (my.sh),如下所示。

#!/bin/sh
oc login "https://server-name:8443" --insecure-skip-tls-verify--
echo "Enter userid password"
UN="username"
PWD="password"
-u $UN -p $PWD
oc project dev1
oc port-forward image-name 1521:1521 && exit

POM

   <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
            <execution>
                <id>my-exec</id>
                <phase>initialize</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <executable>sh</executable>
            <arguments>
                <argument>-c</argument>
                <argument>${project-home}/resources/my.sh</argument>
            </arguments>
        </configuration>
    </plugin>

但问题是当 运行 mvn 命令 ( mvn spring-boot:run -Dspring-boot.run.profiles=it)

然后终端停在Forwarding from 127.0.0.1:1521 -> 1521并卡在那里没有前进。

按如下所示更改最后一行后它起作用了。

nohup oc port-forward image-name 1521:1521 > /dev/null 2>&1 </dev/null &
echo

>/dev/null 将父日志输出通过管道传输到空目录 这是轻松启动后台进程的解决方法

nohup - 断开正在从父进程启动的后台 sub-process 的输入和输出,并告诉 sub-process 不要响应 HUP(挂断)信号