我试图在tmux
会话中运行python脚本。我写了一个命令(tmux new-session -d -s my_session
),从crontab
运行良好。
但是当我试图运行带有tmux new-session -d -s my_session 'python3 test.py
或tmux new-session -d -s my_session 'sh test.sh
的python或shell文件时
脚本不运行。我使用了here中的引用。
请帮帮我。
最佳答案
编辑
您可以使用\;
分离tmux命令,然后使用send-keys
命令将命令发送到活动窗口。
在您的情况下,您可以使用:
tmux new-session -d -s my_session \; send-keys "python3 test.py" Enter
tmux new-session -d -s my_session \; send-keys "sh test.sh" Enter
tmux new-session -d -s my_session \; send-keys "python3 -m http.server 8080" Enter
您可以在tmux manpages section for send-keys上找到有关
send-keys
选项的更多信息:发送密钥[-lMRX][-N重复计数][-t目标窗格]密钥。。。
(别名:send)
把一把或多把钥匙送到一个窗口。每个参数键都是要发送的键的名称(例如“
C-a
”或“NPage
”);如果字符串未被识别为键,则将其作为一系列字符发送。l标志禁用键名查找并按字面意思发送键。所有参数都是从第一个到最后一个顺序发送的。-R标志使终端状态复位。-M通过鼠标事件(仅当绑定到鼠标键绑定时有效,请参见MOUSE SUPPORT)。
-X用于将命令发送到复制模式-请参阅WINDOWS AND PANES部分。
-N指定重复计数。
send-keys
语法在Key Bindings section的tmux manpage中描述。send-keys
使用的密钥名与bind-key
使用的密钥名相同。我通常在基本文件的基础上处理不同的配置文件。
假设您的tmux配置在
~/.tmux.conf
中,然后在~/.tmux/
文件夹中创建不同的配置文件。例如,我可以有一个python配置文件(如果要在会话中输入,请使用attach
):# To use this configuration launch tmux with the command:
# > tmux -f ~/.tmux/python.conf attach
#
# Load default tmux config
source-file ~/.tmux.conf
# Create session and launch python script
new-session -s python -n python -d -c ~/src/python/
send-keys "python test.py" Enter
这使我可以灵活地创建更复杂的会话。
关于linux - 如何在tmux session 中运行python文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49338467/