Converter comando de tela para tmux

1

Alguém está familiarizado com a forma de executar programas a partir do crontab no tmux em vez de uma sessão de tela?

Por exemplo, qual seria a linha de comando equivalente a isso:

@reboot cd /home/morggin/mcserver && screen -dmS McMyAdmin ./MCMA2_Linux_x86_64
    
por morggin 03.03.2015 / 05:49

1 resposta

1

Você pode fazer isso a partir de um comando, conforme indicado por Jason. Você pode fazer

 tmux new-session -d -s session_name your_command

O -d desanexou a nova sessão do terminal. Pode não ser necessário quando não iniciado a partir de um trabalho cron em vez de um terminal, mas não vai doer. ( new é a abreviação de new-session )

Isso tem uma grande desvantagem, pois fecha a sessão se your_command terminar, e se alguma coisa útil for gravada na sessão, essa informação será perdida. Eu sugiro que você use um script multi-linha para iniciar este tipo de comando e inicie a partir do seu cron na reinicialização:

#!/bin/bash
cd /home/morggin/mcserver
tmux new-session -d -s McMyAdmin -n McMyAdmin
tmux send-keys "./MCMA2_Linux_x86_64"

que inicia o programa na sessão bash que o tmux cria de qualquer maneira (existem outras maneiras de impedir que a saída do programa feche uma janela, mas pelo que me lembro algumas envolvem double bash startups). O -n nomeia a janela dentro da sessão, útil no caso de você decidir adicionar a criação de várias janelas na sessão.

    
por 03.03.2015 / 07:40