Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以ssh到Windows,启动命令并让它在我注销时运行吗?_Windows_Ssh - Fatal编程技术网

我可以ssh到Windows,启动命令并让它在我注销时运行吗?

我可以ssh到Windows,启动命令并让它在我注销时运行吗?,windows,ssh,Windows,Ssh,既然Windows10包含了一个openSSH服务器,那么有没有办法启动一个程序并让它在我注销时运行呢? 在linux上,有屏幕和tmux,但Windows呢 注: 能够重新连接到流程会很好,但这不是一项要求 在当前本地用户的会话中打开程序也可以 我的用例是在我自己的机器上从其他地方运行脚本——由于一些脚本可能需要很多小时才能完成,我不想依赖于保持SSH的打开。由于测试会将结果写入文件,所以可以触发并忘记,也就是说,不能重新连接 我尝试使用SysInternals中的PsExec作为PsExec

既然Windows10包含了一个openSSH服务器,那么有没有办法启动一个程序并让它在我注销时运行呢? 在linux上,有屏幕和tmux,但Windows呢

注:

能够重新连接到流程会很好,但这不是一项要求 在当前本地用户的会话中打开程序也可以 我的用例是在我自己的机器上从其他地方运行脚本——由于一些脚本可能需要很多小时才能完成,我不想依赖于保持SSH的打开。由于测试会将结果写入文件,所以可以触发并忘记,也就是说,不能重新连接


我尝试使用SysInternals中的PsExec作为PsExec-I 1 start cmd.exe/k命令在当前用户的会话中启动命令,但由于PsExec无法启动,此操作失败:系统找不到指定的文件。。。如果不启动,它就不会从ssh会话中分离。

经过一些阅读,看起来有两种方法可以运行从当前会话中分离的内容:将其作为服务运行,或者使用调度程序。 事实证明,后者相对简单,在SSH会话中工作良好:

schtasks /create /SC ONCE /TN <task_name> /TR <full-path-to-script> /ST <HH:MM>
请注意,最后一行不会停止正在运行的任务,只会将其从调度程序中删除

在此之后,可以安全地注销ssh会话,脚本将继续运行

schtasks /create /SC ONCE /TN <task_name> /TR <full-path-to-script> /ST <HH:MM>
schtasks /run /TN <task_name>
schtasks /delete /TN <task_name> /F