1. 程式人生 > 程式設計 >解決Python paramiko 模組遠端執行ssh 命令 nohup 不生效的問題

解決Python paramiko 模組遠端執行ssh 命令 nohup 不生效的問題

Python - paramiko 模組遠端執行ssh 命令 nohup 不生效的問題解決

1、使用 paramiko 模組ssh 登陸到 linux 執行nohup命令不生效

# 執行命令
def command(ssh_config,cmd,result_print=None,nohup=False):
  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(hostname=ssh_config.hostname,port=ssh_config.port,username=ssh_config.username,password=ssh_config.password)
  print(ssh_config.hostname + '@' + ssh_config.username,': ',cmd)
  stdin,stdout,stderr = ssh.exec_command(cmd)
  result = stdout.read()
  if result_print:
    lines = read_unicode(result)
    for line in lines:
      print(line)
  ssh.close()

因為執行完畢後,shell 會立即關閉通道

2、稍作修改,使用 invoke_shell

# 執行命令
def command(ssh_config,cmd)
  if nohup:
    cmd += ' & \n '
    invoke = ssh.invoke_shell()
    invoke.send(cmd)
    # 等待命令執行完成
    time.sleep(2)
  else:
    stdin,stderr = ssh.exec_command(cmd)
    result = stdout.read()
    if result_print:
      lines = read_unicode(result)
      for line in lines:
        print(line)
  ssh.close()

到此這篇關於解決Python paramiko 模組遠端執行ssh 命令 nohup 不生效的問題的文章就介紹到這了,更多相關Python paramiko 模組遠端執行ssh 命令 nohup 不生效內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!