Я хотел бы передать команду серверу, чтобы он работал, скажем, навсегда! под «сеансом экрана» с помощью ssh.
поэтому я использую что-то вроде
ssh -t root@server screen -S myinf "python infinit1.py &"
где infinit1.py - это скрипт. Проблема: «python infinit1.py» не работает в фоновом режиме и не создается экран с именем «myinf».
Я ценю твои намеки.
сделай это
ssh -t root@server "nohup bash -c '( ( /usr/bin/python infinit1.py &> /dev/null ) & )'"
это связано с тем, что открывшемуся терминалу необходимо закрыть и, следовательно, он не может поддерживать выполнение команды. чтобы увидеть результат, замените / dev / null на фактическое имя файла.
Я не пробовал использовать удаленный экран, поэтому пропустил это. возможно, вы сможете заставить его работать, но, возможно, синтаксис немного не работает.
Это связано с тем, что вызываемый вами экран требует для работы pty. Вам нужно будет запустить экран в автономном режиме:
ssh root@server screen -d -m -S myinf python infinit1.py
Вам не нужны кавычки или амперсанд. Вместо этого используйте параметры -d -m для запуска экрана в автономном режиме. Взгляните на страницу руководства для получения дополнительной информации.
Рабочий пример командной строки:
ssh $host screen -S myinf -d -m tail -F /var/log/dmesg