Команда
ssh user@host echo $PATH
будет выполнять echo
на удаленном хосте с любым значением $PATH
локально, поскольку переменная задается в командной строке без кавычек.
Чтобы получить удаленный путь, убедитесь, что локальная оболочка не расширяет переменную:
ssh user@host 'echo $PATH'
Одинарные кавычки вокруг команды предотвращают расширение локальной оболочки $PATH
.
Поскольку tmux или screen не подходят, я бы посоветовал вам использовать для этого systemd. Для вашего примера вы должны создать файл (как sudo )с вашим любимым редактором (nano, vim и т. д. ), например:
sudo nano /etc/systemd/system/myexecuteable.service
Он должен содержать как минимум следующее:
[Unit]
Description=start my executable after multi-user target
[Service]
Type=simple
ExecStart=/path/to/my/executable
[Install]
WantedBy=multi-user.target
Теперь у вас есть две возможности.
sudo systemctl enable myexecutable.service
sudo systemctl start myexecutable.service
В первом случае вам, возможно, придется дополнительно ввести команду «systemctl start» для проверки, поскольку «enable» не означает «старт»
Эта служба будет работать, даже если вы покинете сеанс. Если этот исполняемый файл имеет некоторый вывод (, используйте «логгер для этого в файле bash ), вы можете проверить его в любое время, используяjournalctl -u myexecutable.service