在Amazon Linux EC2实例中将dotnet Core Web API作为服务运行 我的EC2详细信息:应用程序的init.d文件内容:

问题描述

在Amazon Linux EC2实例中将dotnet core web api作为服务运行时,我遇到一个非常奇怪的问题。

我的EC2详细信息:

NAME="Amazon Linux AMI"
VERSION="2018.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2018.03"
PRETTY_NAME="Amazon Linux AMI 2018.03"

问题:

当我将应用程序作为后台进程运行时(如下所示),它运行正常:

sudo nohup /etc/my_dotnet/my_dotnet_webapi_folder/my_dotnet_webapi > Output2.out 2> Error2.err < /dev/null &

在执行上述命令并将其运行为BG process后,如果进程正在运行,我可以进行API调用

但是当我运行与service相同的操作时,我无法调用APIs

在两种情况下,我sudo ps -aux | more都可以看到进程正在运行

应用程序的init.d文件内容

COMMENT!/bin/sh
COMMENT
COMMENT description:  Some DESCRIPTION
COMMENT processname: my_dotnet_webapi
COMMENT pidfile:     /var/run/my_dotnet_webapi.pid

COMMENT Source function library.
. /etc/rc.d/init.d/functions

COMMENT Source networking configuration.
. /etc/sysconfig/network

COMMENT Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

prog="PS API - DEV"
my_dotnet_webapi="/etc/my_dotnet/my_dotnet_webapi_folder/my_dotnet_webapi"
lockfile="/var/lock/subsys/my_dotnet_webapi"
pidfile="/var/run/${prog}.pid"


start() {
    echo -n $"Starting $prog: "
    sudo nohup $my_dotnet_webapi> Output2.out 2> Error2.err < /dev/null &
    sudo touch $lockfile
    retval=$?
    echo
    [ $retval -eq 0 ]
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    sudo kill -p $pidfile $my_dotnet_webapi
    retval=$?
    echo
    [ $retval -eq 0 ] && sudo rm -f $lockfile
    return $retval
}

restart() {
    return 6
    stop
    start
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    *)
        echo $"Usage: $0 {start|stop|reload}"
        exit 2
esac

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)