大家基本都用过桌面版的Windows,假如我临时有事,把显示器的屏幕电源关掉了,这个操作对我我正在运行的windows桌面有什么影响呢?答案是没有任何影响,你走之前桌面是什么样,关闭显示器后它还会一直保持什么样,关闭显示器这个操作只是让你看不到桌面了而已。当然,如果你设置了定时屏保、定时自动关闭屏幕或定时自动待机功能等,到了预设的时间电脑会做出相应的操作,但至少在你刚刚关闭显示器的那一段时间,windows的桌面会维持原样。
那么对于Windows Server的桌面,如果我断开了Remote Desktop Connection(远程桌面连接),这个操作对我的Windows桌面有什么影响呢?答案是你的Windows Server桌面立刻进入到了锁屏状态。如果你的服务都只是后台服务,那么锁屏了其实问题不大;但假如你的程序或服务必须在不锁屏的情况下才能正常运行的话,你会发现,一旦你断开了Remote Desktop Connection(远程桌面连接),那么你的程序会立刻停止服务,因为它们正常运行的环境不存在了。那么如何解决这个问题呢?
产生问题的原因是因为远程桌面断开了,导致了锁屏,进而导致了程序或服务无法运行,那么解决的思路就很直接,不让远程桌面断开就好了。第一个能想到的解决方案就是让你的PC一直开着远程桌面连接,不要断开,这样服务器端的桌面也就会一直不锁屏了。但这样也会产生一个问题,我的pc可能无法24小时开机,而且假如我的pc可以24小时开机,我都没必要把我的程序跑到服务器上了,直接在我的pc上就够用了,显然这个方法不太可行。第二个能想到的就是我再用一台别的服务器远程登录到这台服务器上,并且远程连接一直不断开,这样也可以保证我的这台服务器桌面一直不锁屏。这个方法对于资源多的用户来说没问题,再开一台服务器就可以了。但如果对于轻量级用户怎么办呢?手里只有一台服务器,没办法让别的服务器远程到自己的服务器。根据上面的情景,就有了本文的一个超级解决方案——自己远程自己。
是的,你没听错,自己远程自己。没有颠覆你的认知,没有超出理论的边界。自己远程自己,第一可以解决PC不能24小时开机的问题,第二可以解决只有一台服务器的尴尬,最关键的,是理论和实践上可行。
下面就来详细说一说操作方法。
新建一个用户
通常情况下,我们使用Windows Server版,都是用administrator这个账号登录的。为了自己远程自己,需要再创建一个帐号,至于是管理员还是普通用户,我这个方法里没要求,就看你要运行程序的要求了。这里假设我再创建了一个windows用户,用户名为zys。
在主帐号上远程到新建的账号上
以上面的用户信息为例,就是先远程登录到windows server的administrator账号上,在这里再次打开Remote Desktop Connection(远程桌面连接),目的ip就是本机的局域网ip(在我这测试发现用局域网ip登录最方便,如果你用不了,也可以尝试公网ip),目标用户是zys,进行登录。
在新建账号的用户里运行你的程序
在新建账号的远程窗口里,打开你要运行的程序。这里就是从zys的桌面上运行你要运行的程序。
断开时只断开你的PC与administrator账号之间的远程桌面
程序跑起来后,不需要再关注时,只需断开你的PC和server主帐号之间的远程连接即可。主帐号远程到新建账号的窗口一直保持开启。以本文为例,就是断开我的PC与administrator之间的远程连接,而administrator到zys之间的远程桌面一直保持开启。
经过上述操作后你会发现,即使你把pc和服务器之间的远程窗口断开,你的程序也可以正常运行,因为你的服务器正在自己远程自己,所以子帐号的桌面永远不会锁屏。
对于必须在不锁屏的情况下才能运行的服务器端程序,可以通过“自己远程自己”的方式,来保证服务器中的某个账号永远处于被远程的状态,不会进入锁屏模式。