如何通过 SSH 持续登录 Synology(自定义 Linux)服务器?我试图让一个程序在服务器上持续运行,但当我从自己的电脑上关闭 SSH 窗口时,该程序也会被终止。有什么办法吗?谢谢。
答案1
使用该screen
实用程序。如果您使用的是基于 Debian 或 Ubuntu 的发行版,请通过 安装它sudo apt-get install screen
。要运行它,请在信息屏幕上输入screen
,然后按。在此处运行您的命令。Enter
如果您断开连接,可以通过键入screen -rd
并按 来恢复Enter。这将带您回到仍在运行的会话。非常适合将您的会话移动到另一个终端或 SSH 连接。
答案2
在另一个 Linux 上,您可以通过运行不带 pty 的命令(即没有 ssh -t 选项)来轻松完成此操作:
ssh syno 'sleep 999 </dev/null >&/dev/null &'
我既不使用 Windows 也不使用 Putty,但如果是这种情况,我看到有一个命令叮当在类似的putty套件中:
plink -ssh -l root -i mykey.ppk syno 'sleep 999 </dev/null >&/dev/null &'
或者,你应该能够使用以下方式在 putty 中运行命令
nohup sleep 999 </dev/null &
答案3
使用“nohup”和“screen”是确保您手动启动的作业继续运行的好的解决方案。
如果您希望进程在重启后继续运行,则必须确保它在重启后启动。有几种解决方案。在我的 Synology 工作站上,我发现“/volume1/startup”目录中以“S”开头的文件作为“init.d”目录中的启动脚本运行。您可以在“/etc/rc”脚本中看到:
/etc/rc: if [ -d /volume1/startup ]; then
/etc/rc: for startsh in /volume1/startup/S* ; do
如果 /etc/synoinfo.conf 具有以下配置则可行
supportstartupd="yes"
这也将在 Synology 系统重新安装后继续存在。