.net父级退出后,在Linux上运行已分离的脚本吗?

时间:2019-02-11 15:07:07

标签: .net linux shell detach

我希望我的.Net Linux服务启动bash shell脚本,该脚本在继续的同时停止其父服务。

使用nohup和&可以轻松地在标准Linux上完成此操作。

这可以在Windows .net中完成,方法是编写一个存根.exe或脚本以启动持久性脚本,然后停止其父级。在这种情况下,存根和父项会死亡,但是子项启动的脚本会继续。

但是,在Linux上的.net中,这似乎不起作用。我的.net应用程序可以使用nohup发出shell命令,但是子脚本-也以nohup和&开头,并且假定是实际工作的子脚本无法运行。

存根update1.sh是使用

从.net应用程序运行的
nohup /usr/bin/myservice/update1.sh update.rpm &

它包含:

trap '' SIGTERM
trap '' SIGINT
nohup /usr/bin/myservice/update2.sh $1 &

update2.sh包含

trap '' SIGTERM
trap '' SIGINT
sudo systemctl stop myservice
yum -y localinstall $1
sudo systemctl start myservice

(该陷阱旨在防止家长关闭 阻止孩子)

如果我从命令行启动update1.sh,同时使用nohup和&来启动服务用户帐户,那么它将正常工作。当我使用相同的命令行从.net应用程序内部启动存根时,就会出现问题。它似乎与在.net托管代码环境中运行有关。

有什么建议吗?

目标是让.net应用程序在无人值守的Centos服务器上运行,并允许它使用'yum -y localinstall'和本地RPM文件进行更新并重新启动自身(不,它不能转到远程存储库)。

0 个答案:

没有答案