如何在Windows的cmd下让程序在后台执行?在windows下启动JBoss服务器,需要在命令行中输入run.bat。但是运行
如何在Windows的cmd下让程序在后台执行?
在windows下启动JBoss服务器,需要在命令行中输入run.bat。但是运行后如果你想停止服务器,可能的做法就是直接按Ctrl+C键强行终止服务器,显然这种方式是不友好的。另一种方法就是再开一个cmd窗口,进入Jboss的bin目录,然后键入shutdown.bat -S.? 这样毕竟费时费力,如果能像Linux下在命令行的后面加一个&让它在后台运行,要关闭时就不用另开窗口直接输入相应的关闭命令就好了。
??? 答案就在下面:
??? 在执行的命令前加上start /b,比如start /b run.bat。就相当于Linux下的run.sh &。
?
windows上面查看进程,使用tasklist 命令
linux上面显示进程 使用 ps -ef 命令
----------------------------------------
在windows上面杀进程用taskkill命令
taskkill /im iperf.exe /t /f
linux上面用killall或者 kill命令
killall iperf1.7?
----------------------------------------
在windows上面后台运行可以使用start 命令 并且指定/b 选项, linux系统需要在命令后面加上& 符号即可。
后台运行 iperf.exe 网络测试程序,并且把输出保存到 c:\iperf_multicast_server_logfile.txt?
start /b?iperf.exe -s -u -l 1k -B 224.0.100.2 -w 1G > c:\iperf_multicast_server_logfile.txt
后台运行/root/iperf1.7 网络测试程序,并且把输出保存到 /root/iperf_multicast_client_logfile.txt?
/root/iperf1.7 -c 224.0.100.2 -u -l 1k -b 400M -w 1G -i 5 -t 60 -T 4 > /root/iperf_multicast_client_logfile.txt&
---------------------------------
windows上面显示 文本文件内容,可以用type命令。
type?? c:\iperf_multicast_server_logfile.txt
Linux上面显示文本文件内容,使用cat 命令即可
cat /root/iperf_multicast_client_logfile.txt
两者的区别在于“任务计划”会在前台运行,运行帐户为当前用户;
而at命令在后台运行,运行帐户为system。
当然at命令也可以使用/interactive选项在前台运行。
?
使用at命令要注意两点:
- 因为运行帐户不同,所以一些环境变量是不同的,比如使用pscp远程拷贝的时候,当前用户的key已经在注册表里,但是system用户没有,导致运行失败。(system如果第一次运行pscp会出现主机验证,解决方案是要么用/interactive运行一次,要么使用pscp -batch)
- 只有可执行文件(.exe .bat .com)可以直接使用at命令运行,cmd内置命令(如copy、ren和bat的语法等)要使用at 19:00 cmd /c copy ….的形式来运行,如果bat文件中也包含cmd命令,也要使用这种方式。
NT Server的AT命令详解?
Windows?NT Server的服务程序管理器只能设置某项服务的启动方式(自动、手动、失效),而在日常管理工作中,常常要求某项服务能定时开启、关闭。Windows?NT Server提供的AT命令能够实现这一点。利用它可实现RAS服务定时开关,其具体步骤如下:?
1.在“设置”“控制面板”“服务”中启动Schedule服务,并将其启动方式属性设置为自动。?
2.在命令窗口中使用AT命令设置服务程序的定时启动关闭。?
AT命令的格式如下:?
AT [\\computername] time [/interactive] [/every:date[,]|next:date[,]] ″command″?
参数含义:?
无参数:显示所有已设置的计划命令情况。?
\\computername:指示执行该命令的计算机名,如省略则在本机执行。?
time:命令执行时间?
/interactive:当程序执行时是否与正在登录的用户进行交互。?
/every:date[,]:指定程序执行的日期(如每周二、三:/every:T,W),每月1,2号:/every:1,2)。?
next:date[,]:指定程序下一次执行的日期。?
″command″:定时执行的Windows NT命令,程序,批处理。?
AT [\\computername] [[id][/delete][/yes]]?
参数含义:?
id:分配给计划命令的识别号码,可由不带参数的AT命令查到。?
/delete:取消指定的计划命令,如果id省略的话,取消所有的计划命令。?
/yes:强制对所有的取消询问回答yes。
用法一,定时启动关闭某个服务?
以RAS服务方例,让该服务在每日19:00启动,次日7:30关闭,AT命令如下:?
AT 19:00 /every:M,T,W,Th,F,S,Su net start ″remote access server″?
AT 7:30 /every:M,T,W,Th,F,S,Su net stop ″remote access server″?
用法二,定时关机?
1.编写一个批处理文件,内容如下:?
shutdown /l?
如果是让机器重新启动则使用?
shutdown /r?
文件存为c:\autoshut.bat?
2.建立自动执行条目:?
at 22:00 c:\autoshut.bat?
这样每天晚上22:00机器都会自动关机,在关机前会进行30秒钟的提示.?
shutdown程序是win2k的Rkit中自带的,windowxp缺省自带。
在 Windows 2000 中,您可以使用“控制面板”中的“任务计划”工具来安排任务。您也可以使用?
at?命令手动安排任务。本文介绍如何使用?
at?命令创建和取消计划任务。?

回到顶端
AT 命令概述您可以使用?at?命令来安排命令、脚本或程序在指定的日期和时间运行。您也可以使用此命令查看现有的计划任务。?
要使用?at?命令,“任务计划程序”服务必须在运行中,而且您必须以本地管理员组成员的身份登录。使用?at?命令创建任务时,您必须对任务进行配置,使之在同一用户帐户下运行。?
at?命令使用以下语法:at \\computername time?/interactive?|?/every:date,.../next:date,...?commandat \\computername id?/delete?|?/delete/yes以下列表介绍可用于?at?命令的参数:- \\computername:此参数用于指定远程计算机。如果省略此参数,则任务将安排在本地计算机上运行。
- time:此参数用于指定运行任务的时间。时间是按 24 小时制的?hour:minutes?形式指定的。例如,0:00 代表午夜,20:30 代表晚上 8:30。
- /interactive:此参数用于允许任务运行时与处于登录状态的用户的桌面进行交互。
- /every:date,...:此参数用于安排任务在指定的日期或在一周或一月内指定的一天或多天运行,例如每星期五或每月的第八天。将?date?指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。
- /next:date,...:此参数用于安排任务在当天之后的某个时间运行(例如,下个星期一)。将?date?指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。
- command:此参数用于指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。如果该命令要求使用路径作为参数,请使用绝对路径名(以驱动器号开头的完整路径)。如果该命令位于远程计算机上,请使用统一命名约定 (UNC) 路径名(\\ServerName\ShareName)。如果该命令不是可执行 (.exe) 文件,必须在命令前面添加?cmd /c,例如,cmd /c copy C:\*.* C:\temp。
- id:此参数用于指定分配给计划任务的标识号。
- /delete:此参数用于取消计划任务。如果省略?id?参数,则将取消计算机上的所有计划任务。
- /yes:此参数用于强制对取消计划任务时系统发出的所有查询回答“是”。如果省略此参数,系统将提示您确认对任务的删除。注意:使用?at?命令时,计划任务是通过使用系统帐户凭据来运行的。
回到顶端如何创建计划任务- 单击开始,指向程序,指向附件,然后单击命令提示符。
- 在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:net start如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:net start "task scheduler"
- 在命令提示符下,键入下面一行(使用与您的情况相符的参数),然后按 Enter:at \\computername time?/interactive?|?/every:date,.../next:date,...?command
示例