我正在尝试使用byobu命令通过ansible剧本在VM上启动一个命名的byobu会话。会话确实开始了,但是在后台,即,当我运行_ps -aux_
命令但当我尝试通过_byobu attach-session -t testByobu_
从VM连接到该会话(testByobu)时,正在显示会话及其所有窗口/任务,它说找不到会话testByobu ,类似地,命令_byobu list-session_
说
没有服务器在/ tmp / tmux-100 / default *上运行。
VM -具有Ubuntu 18.04.2 LTS的VirtualBox VM --- Byobu版本5.125 tmux 2.6
本地系统 --- Ubuntu 18.04.2 LTS ---可以2.8.0 配置文件= /etc/ansible/ansible.cfg 配置的模块搜索路径= [u'/ home / emumba / .ansible / plugins / modules',u'/ usr / share / ansible / plugins / modules'] ansible python模块位置= /usr/lib/python2.7/dist-packages/ansible 可执行位置= / usr / bin / ansible python版本= 2.7.15rc1(默认,2018年11月12日,14:31:15)[GCC 7.3.0]
当我尝试使用可播放的剧本再次创建同名会话,即 testByoby 时,出现错误
任务[开始byobu会话] ****************************************************** ****************************************************** ***********************致命:[192.168.2.218]:失败! => {“更改”:true,“ cmd”:“ byobu new-session -d -s testByobu“,” delta“:” 0:00:00.046348“,” end“: “ 2019-05-27 12:26:15.832584”,“ msg”:“非零返回码”,“ rc”:1, “开始”:“ 2019-05-27 12:26:15.786236”,“ stderr”:“重复的会话: testByobu”,“ stderr_lines”:[“重复的会话:testByobu”], “ stdout”:“”,“ stdout_lines”:[]}
发生,因为它发现会话已经存在。但是,当我直接在VM上进行相同的会话(testByoby)时,它创建成功。 VM上的ps -aux命令显示两个以相同名称运行的会话,并且我通过playbook创建的会话创建的窗口也显示在输出中。但是运行 byobu list-session 命令仅显示我直接在VM上创建的一个会话。
**output of the _ps -aux_ command:**
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
osama 3374 0.0 0.1 37284 3740 ? Ss 12:27 0:00 tmux -u -2 -f /usr/share/byobu/profiles/tmuxrc new-session -d -s testByobu
osama 3378 0.0 0.2 29896 5080 pts/6 Ss+ 12:27 0:00 /bin/bash
root 4087 0.0 0.0 0 0 ? I 12:31 0:00 [kworker/u2:1-ev]
root 4123 0.0 0.0 0 0 ? I 12:36 0:00 [kworker/0:2]
root 4126 0.0 0.3 110076 7280 ? Ss 12:36 0:00 sshd: osama [priv]
osama 4190 0.2 0.2 110556 5288 ? S 12:36 0:00 sshd: osama@notty
root 4275 0.0 0.1 37276 3652 ? Ss 12:36 0:00 tmux -u -2 -f /usr/share/byobu/profiles/tmuxrc new-session -d -s testByobu
root 4278 0.0 0.1 28908 4040 pts/3 Ss+ 12:36 0:00 /bin/bash
root 4403 0.0 0.1 28908 3852 pts/2 Ss 12:36 0:00 /bin/bash
root 4441 0.0 0.2 39760 4196 pts/2 S+ 12:36 0:00 vi
root 4492 0.0 0.1 28908 3948 pts/4 Ss+ 12:36 0:00 /bin/bash
root 4581 0.0 0.1 28908 3892 pts/5 Ss 12:36 0:00 /bin/bash
root 4619 0.0 0.0 23828 1076 pts/5 S+ 12:36 0:00 ping 8.8.8.8
osama 4641 0.0 0.1 47100 3716 pts/0 R+ 12:37 0:00 ps -aux
尝试了其他方式 如果我先在VM上进行会话,然后再运行剧本制作该会话的窗口,则它再次遇到错误
任务[任务1] ****************************************************** ****************************************************** ****************************************致命:[192.168.2.218]:失败! => {“更改”:true,“ cmd”:“ byobu send-keys -t testByobu:0'vim''C-m'“,” delta“:” 0:00:00.057772“, “ end”:“ 2019-05-27 12:30:08.899375”,“ msg”:“非零返回码”, “ rc”:1,“开始”:“ 2019-05-27 12:30:08.841603”,“ stderr”:“没有服务器 在/ tmp / tmux-0 / default上运行”,“ stderr_lines”:[“没有服务器在运行 在/ tmp / tmux-0 / default上“],” stdout“:”“,” stdout_lines“:[]}
再次显示该剧本没有访问已经存在的书。
这是示例剧本。
name: Test Byobu
hosts: all
remote_user: osama
become: yes
任务:
# name: kill byobu session
# shell: byobu kill-session -t testByobu
name: start byobu session
shell: byobu new-session -d -s testByobu
name: task 1
shell: |
byobu send-keys -t testByobu:0 'vim' 'C-m'
name: task 2
shell: |
byobu new-window -t testByobu:1
byobu send-keys -t testByobu:1 'vi' 'C-m'
name: task 3
shell: |
byobu new-window -t testByobu:2
byobu send-keys -t testByobu:2 'cd /tmp/ && touch testByobu.txt' 'C-m'
name: task 4
shell: |
byobu new-window -t testByobu:3
byobu send-keys -t testByobu:3 'ping 8.8.8.8' 'C-m'`
我期望的是,当我运行我的剧本(提供代码)时,它应该在VM上创建一个名为testByobu的新会话,以便当我运行_byobu attach-session -t testByobu_
命令且所有窗口都完好无损时可以访问它在剧本中创建。我可以切换到在playook中创建的所有4个窗口。
实际上发生的是剧本成功运行,但是在VM上,会话在后台运行,而VM上的byobu似乎不知道该会话。
在这方面的帮助,我将不胜感激。
更新 我想我应该对问题进行总结,这样可能会使详细说明容易理解。
我想在VM上启动一个名为testByobu的byobu会话,并通过可播放的剧本在该会话的不同窗口上运行不同的进程。
剧本(提供的代码)运行成功,但是当我尝试使用byobu list-session
命令列出byobu会话时,在VM上却没有testByobu。因此,当我运行byobu attach-session -t testByobu
命令时,我也无法连接到该会话。
需要提及的重要一点是,会话“ testByoby”以及通过剧本在该会话内运行的所有进程的确会显示在命令ps -aux
产生的正在运行的进程的列表中。
我想要的是,当我在VM上运行byobu list-session
命令时,会话必须出现,因此,当我运行byobu attach-session -t testByobu
命令时,进入该会话必须是可以实现的。