J'essaie de connecter le serveur ssh distant via ruby en utilisant Net :: SSH.Il fonctionne très bien pour moi pour toutes les commandes fournies via script et je pourrais lire la sortie de la commande avec succès. Mais quand j'utilise la commande ci-dessous, il est coincé dans SSH.exec! (Cmd) et le contrôle n'est pas retourné par la ligne. Uniquement si i cliquez sur Ctrl + c dans la ligne de commande, le script se termine. La commande est ./wcsadmin.sh start -> il est utilisé pour démarrer les processus de ma application serveur distantL'exécution de la commande SSH à distance se bloque dans ruby en utilisant Net :: SSH pour une commande particulière
S'il vous plaît trouver l'extrait de code ci-dessous de mon script Ruby:
Net::SSH.start(host, username, :password => password) do |ssh|
puts 'before exit'
output = ssh.exec!(/opt/wcsadmin.sh start)
puts 'Executed command'
Le sortie de la commande quand je le fais manuellement:
[racine bin test @] # ./wcsadmin.sh commencer
système de contrôle du réseau ... à partir
Cela peut prendre quelques minutes ... stty: entrée standard: Invalid argument
système de contrôle du réseau a démarré avec succès.
Lancement du démon SAM ... Terminé. Démarrage démon DA ... À partir syslog DA démon ... Début
si j'utilise ssh.exec ('./ wcsadmin.sh start'), la seule différence est la ci-dessus la sortie est imprimée mais toujours se le programme n'est jamais terminé.I besoin de terminer manuellement en appuyant sur ctrl + c. Quand je cherchai dans google i pu trouver, vous pouvez utiliser
commande nohup ('nohup /opt/wcsadmin.sh start> /tmp/teststartserver.log 2> & 1')
à sauter les signaux de raccrochage et essayé la même chose.Cela écrit également la sortie à teststartserver.log mais se pendu.Peut-on m'aider s'il vous plaît sur cette question?
Merci à l'avance!
Merci, Meena