首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止在Custom Azure-VM中运行的Java进程

停止在Custom Azure-VM中运行的Java进程
EN

Stack Overflow用户
提问于 2020-03-18 19:30:51
回答 1查看 126关注 0票数 0

我已经进入了一个场景,在这个场景中,我想要停止自定义Azure VM中当前正在执行的java进程。虚拟机是一台由我们的基础设施配置的ubuntu机器。

我正在构建一个Azure连续部署管道,我想在其中部署VM中的最新版本。但是在我可以部署最新的构建之前,我需要停止之前构建的当前正在执行的Java进程。

我使用"Command Over SSH“来触发一个带有java进程的进程ID的'kill‘信号,但是Azure禁止在管道中使用'kill’命令。

日志

代码语言:javascript
复制
==============================================================================
Task         : SSH
Description  : Run shell commands or a script on a remote machine using SSH
Version      : 0.165.1
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/ssh
==============================================================================
Trying to establish an SSH connection to ***@<HOST>:22
Successfully connected.
chmod +x "./sshscript_158452036****"
"./sshscript_158452036****"
 ========** Stop currently executing process: 4381

##[error]./sshscript_158452036****: line 5: kill: (4381) - Operation not permitted

有没有其他方法可以优雅地关闭Java进程。或者使用其他解决方案来实现CD。我不打算对部署进行Docker化。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 05:45:02

“不允许操作”错误不是来自Azure。相反,这意味着您的ssh用户没有权限终止VM上的该进程。因此,现有进程由不同的用户运行,而不是由您用于ssh的用户运行。

可能的解决方法-在您的旧部署中包含某种类型的cron,它将扫描触发器文件(例如/tmp/ kill myprocess.rigger),如果该文件存在,将杀死它。

然后在新的部署中,您所要做的就是

代码语言:javascript
复制
touch /tmp/killmyprocess.trigger
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60738618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档