能不能远程结束vps上运行着的程序?

搬瓦工机场JMS

情况描述:现在我在vps上运行着一个xxx.py(是个多线程的)程序。
现在关闭它的办法是:登录vps,然后ps -aux | grep xxx找到运行的id(这个id每次都变的),然后kill 9 id。

每次结束都需要执行上述步骤,比较麻烦。

能不能远程结束它?
重庆网友:比如

  1. package main
  2. import (
  3.         "fmt"
  4.         "log"
  5.         "net/http"
  6.         "os/exec"
  7. )
  8. const action = `kill -9 $(ps -ef | grep [x]xx.py | awk ‘{print $2}’)`
  9. func main(){
  10.         http.HandleFunc("/call",RemoteCall)
  11.         log.Println("Start Server http://0.0.0.0:18080&quot😉
  12.         log.Fatal(http.ListenAndServe("0.0.0.0:18080",nil))
  13. }
  14. func RemoteCall(w http.ResponseWriter, r *http.Request){
  15.         cmd := exec.Command(action)
  16.         err := cmd.Start()
  17.         if err != nil{
  18.                 fmt.Fprintln(w,err)
  19.                 return
  20.         }
  21.         fmt.Fprintln(w,"ok")
  22. }

复制代码
浏览器访问 http://ip:18080/call
香港网友:楼下来说,
吉林网友:撸个api远程调用
陕西网友:这是个什么情况
福建网友:手机上下载个ssh客户端?
不知道你的结束判断条件是啥,为啥不写到py里,让其自己结束
海南网友:Go语言好评
海南网友:装个面板,里面有进程管理~
青海网友:

  1. #!/bin/bash
  2. username=xxxxxx
  3. host=x.x.x.x
  4. passwd=xxxxxxx
  5. pname=xxx.py
  6. /usr/bin/expect <<EOF
  7. spawn ssh $username@$host
  8. expect {
  9.         "yes/no" {send "yes\r"; exp_continue }
  10.         "password:" { send "$passwd\r" }       
  11. }
  12. expect "#"
  13. send "killall -9 $pname\r"
  14. expect "#"
  15. send "exit\r"
  16. expect eof
  17. EOF
  18. echo "—- end — "

复制代码

江西网友:要装个expect,
apt-get install expect

yum install expect
天津网友:要装个expect,
apt-get install expect

yum install expect
河南网友:装个screen多简单
黑龙江网友:谢谢!
吉林网友:灵活点

你只要换成 pkill 命令就行了, xxx是你的名字

  1. pkill -9 xxx

复制代码

未经允许不得转载:美国VPS_搬瓦工CN2 GIA VPS » 能不能远程结束vps上运行着的程序?

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏