JSmooth является простой программой, которая берет Вашу банку и оборачивает ее в стандартном исполняемом файле окон. Это идет с простым GUI, который позволяет Вам настраивать необходимую JVM, связывать ее приложением или предоставлять возможность загружать его, если это уже не установлено. Можно отправить EXE-файл, как, или архивируйте его с возможными зависимостями (или позвольте программе загрузить дополнительные зависимости с сети на запуске). Это также свободно, как в пиве и речи, которая может (или не может) быть хорошей вещью.
Бывают ситуации, когда вы хотите выполнить / запустить некоторые сценарии на удаленном компьютере / сервере (который завершится автоматически) и отключиться от сервера.
например: сценарий, запущенный на ящике, который при выполнении
Я бы использовал следующую команду:
ssh remoteserver 'nohup /path/to/script `</dev/null` >nohup.out 2>&1 &'
@CKeven, вы можете поместить все эти команды в один сценарий, отправить его на удаленный сервер и запустить следующим образом:
echo '#!/bin/bash
rm -rf statuslist
mkdir statuslist
chmod u+x ~/monitor/concat.sh
chmod u+x ~/monitor/script.sh
nohup ./monitor/concat.sh &
' > script.sh
chmod u+x script.sh
rsync -azvp script.sh remotehost:/tmp
ssh remotehost '/tmp/script.sh `</dev/null` >nohup.out 2>&1 &'
Надеюсь, это сработает; -)
Изменить: Вы также можете использовать ssh user @ host 'screen -S SessionName -d -m "/ path / to / executable"'
, который создает отдельный сеанс экрана и запускает цель команда внутри него
Что вы думаете об использовании для этого screen
? Вы можете запустить screen
через ssh, чтобы запустить команду ( concat.sh
), а затем вы сможете вернуться к сеансу экрана, если хотите его контролировать (может быть удобно (в зависимости от того, что делает concat).
Чтобы быть более конкретным, попробуйте следующее:
ssh -t $username@$node screen -dm -S testing ./monitor/concat.sh
Вы должны обнаружить, что приглашение возвращается немедленно и что concat.sh
запущен на удаленном компьютере. Я объясню некоторые варианты:
ssh -t
создает TTY. screen нуждается в этом. screen -dm
заставляет его запускаться в "отключенном" режиме. Это похоже на «фон» для ваших целей. -S
testing дает вашему сеансу экрана имя. Это необязательно, но рекомендуется. Теперь, когда вы это сделаете, вы можете перейти на удаленный компьютер и запустить это:
screen -r testing
Это подключит вас к сеансу экрана, который содержит вашу программу. Оттуда вы можете контролировать его, убить, увидеть результат и так далее. Ctrl-A, затем d отключит вас от сеанса экрана. screen -ls
перечислит все запущенные сеансы.
It could be the standard input stream. Try ssh -n ...
or ssh -f ...
.