如何在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 命令
後臺執行 iperf.exe 網路測試程式,並且把輸出儲存到 c:\iperf_multicast_server_logfile.txt
後臺執行/root/iperf1.7 網路測試程式,並且把輸出儲存到 /root/iperf_multicast_client_logfile.txt
---------------------------------
Linux上面顯示文字檔案內容,使用cat 命令即可 |
兩者的區別在於“任務計劃”會在前臺執行,執行帳戶為當前使用者;
而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命令,也要使用這種方式。
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,... command at \\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:此引數用於強制對取消計劃任務時系統發出的所有查詢回答“是”。如果省略此引數,系統將提示您確認對任務的刪除。
回到頂端
如何建立計劃任務
- 單擊開始,指向程式,指向附件,然後單擊命令提示符。
- 在命令提示符下,鍵入下面一行,然後按 Enter 顯示當前執行的服務的列表: net start 如果“任務計劃程式”未顯示在列表中,則請鍵入下面一行,然後按 Enter: net start "task scheduler"
- 在命令提示符下,鍵入下面一行(使用與您的情況相符的引數),然後按 Enter: at \\computername time /interactive | /every:date,.../next:date,... command
示例
- 要想在午夜將“Documents”資料夾中的所有檔案複製到“MyDocs”資料夾中,請鍵入下面一行,然後按 Enter: at 00:00 cmd /c copy C:\Documents\*.* C:\MyDocs
- 要想在每個工作日晚上 11:00 備份“Products”伺服器,請建立包含備份命令的批處理檔案(例如 Backup.bat),鍵入下面一行,然後按 Enter 安排該備份任務: at \\products 23:00 /every:M,T,W,Th,F backup
- 要想安排 net share 命令上午 6:00 在“Sales”伺服器上執行,並將列表重定向到“Corp”伺服器上的共享資料夾“Reports”中的“Sales.txt”檔案,請鍵入下面一行,然後按 Enter: at \\sales 06:00 cmd /c "net share reports=d:\Documents\reports >> \\corp\reports\sales.txt"
如何取消計劃任務
- 單擊開始,指向程式,指向附件,然後單擊命令提示符。
- 在命令提示符下,鍵入下面一行,然後按 Enter 顯示當前執行的服務的列表: net start 如果“任務計劃程式”未顯示在列表中,則請鍵入下面一行,然後按 Enter: net start "task scheduler"
- 在命令提示符下,鍵入下面一行(使用與您的情況相符的引數),然後按 Enter: at \\computername id /delete | /delete/yes
示例
- 要取消在本地計算機上安排的所有任務,請鍵入 at /delete,然後按 Enter。
- 要取消名為“MyServer”的計算機上的 ID 為 8 的任務,請鍵入 at \\MyServer 8 /delete,然後按 Enter。
如何檢視計劃任務
要檢視通過使用 at 命令建立的任務,請按照下列步驟操作:- 單擊開始,指向程式,指向附件,然後單擊命令提示符。
- 在命令提示符下,鍵入下面一行,然後按 Enter 顯示當前執行的服務的列表: net start 如果“任務計劃程式”未顯示在列表中,則請鍵入下面一行,然後按 Enter: net start "task scheduler"
- 在命令提示符下,執行下列步驟之一:
- 要檢視通過使用 at 命令安排的任務的列表,請鍵入下面一行,然後按 Enter:
at \\computername
- 或 -
- 要檢視特定的計劃任務,請鍵入下面一行,然後按 Enter: at \\computername id
- 要檢視通過使用 at 命令安排的任務的列表,請鍵入下面一行,然後按 Enter:
at \\computername
- 或 -
示例
- 要檢視本地計算機上的所有計劃任務,請鍵入 at,然後按 Enter。
- 要檢視名為“Support”計算機上的所有計劃任務,請鍵入 at \support,然後按 Enter。
- 要檢視本地計算機上 ID 為 18 的任務,請鍵入 at 18,然後按 Enter。
疑難解答
- 當您鍵入 at \\computername 以檢視計劃任務列表時,使用 at 命令建立的某些(或全部)計劃任務沒有列出。
使用 at 命令建立任務後,如果在“計劃任務”資料夾中修改了任務,則可能會發生此問題。當您使用 at 命令安排任務時,該任務顯示在“控制面板”中的“計劃任務”資料夾中。您可以檢視或修改任務。但是,如果修改了任務,當您使用 at 命令時,將無法檢視任務。
要解決此問題,請在“控制面板”中的“任務計劃”資料夾中檢視或修改該任務。有關此現象的其他資訊,請單擊下面的文章編號,以檢視 Microsoft 知識庫中相應的文章: 220149 無法使用任務計劃程式工具檢視 AT 任務 - 當您使用 at 命令安排任務時,該任務在指定的時間或日期不執行。
如果滿足下列任一條件,就會發生這種現象:- 該命令的語法不正確。
安排任務後,請鍵入 at \\computername 以確認語法正確。如果命令列下顯示的資訊不正確,請取消該任務,然後重新建立它。
- 或 - - 您安排的任務執行的命令不是 .exe 檔案。
at 命令在執行命令之前不自動載入 cmd(命令直譯器)。除非您執行的是 .exe 檔案,否則您必須在命令的開頭載入 Cmd.exe,例如 at cmd /c dir > c:\test.txt。
- 該命令的語法不正確。
相關推薦
linux中讓程式後臺執行!!!
在嘗試讓自己寫的測試程式開機自動啟動過程中,出現多次失敗,最後在/etc/rc.local中加入了自己測試程式路徑/bin/testproc。 接著開機啟動看看程式是否自啟動,結果發現出現串列埠列印停止在某個位置。心想麻煩了把系統配置檔案弄壞了,造成系統加載出現問題
linux下python程式後臺執行,並將列印資訊儲存檔案
在跑比較時間比較長的程式,或者是列印資訊比較多的程式時,一般都會後臺執行程式,然後把列印資訊儲存在檔案中,等程式執行結束後再檢查輸出日誌。完成該功能可以用如下命令: nuhup python -u test.py > test.log 2>&1 &
如何在Windows的cmd下讓程式在後臺執行?
在windows下啟動JBoss伺服器,需要在命令列中輸入run.bat。但是執行後如果你想停止伺服器,可能的做法就是直接按Ctrl+C鍵強行終止伺服器,顯然這種方式是不友好的。另一種方法就是再開一個cmd視窗,進入Jboss的bin目錄,然後鍵入shutdown.bat
Windows的cmd下讓程式在後臺執行
在windows下啟動JBoss伺服器,需要在命令列中輸入run.bat。但是執行後如果你想停止伺服器,可能的做法就是直接按Ctrl+C鍵強行終止伺服器,顯然這種方式是不友好的。另一種方法就是再開一個cmd視窗,進入Jboss的bin目錄,然後鍵入shutdown.bat
Linux screen讓你的筆記本關機,伺服器程式後臺執行
1.Background 現在的深度學習訓練一般都是使用伺服器,而我們通過SSH連線伺服器跑程式或者其他操作會遇到一些問題,比如訓練程式碼跑太久導致沒辦法關機,因為關掉命令列視窗程式就會停止,或者有時我們需要同時開多個終端,因為一個終端在程式碼執行時沒辦法進行其他操作。
linux下利用nohup後臺執行jar檔案包程式
Linux 執行jar包命令如下: 方式一: java -jar XXX.jar 特點:當前ssh視窗被鎖定,可按CTRL + C打斷程式執行,或直接關閉視窗,程式退出 那如何讓視窗不鎖定? 方式二 java -jar XXX.jar & &代表在後臺執行。 特定:當前ssh視
如何在關閉ssh連線的情況下,讓程式繼續執行?
對Unix,Linux類伺服器維護經常是通過ssh完成的,而有些操作比較費時,如更新程式等。此時如果斷開ssh連線的話,更新程式就會隨之被中斷。如何保證斷開ssh後仍舊能保持更新程序的執行呢?有兩種方法: (1)nohup #nohup 應用程式名 &a
telnet 讓不能後臺執行的程式後臺執行 為程式加入假死檢測功能
Telnet協議是TCP/IP協議族中的一員,是Internet遠端登陸服務的標準協議和主要方式。它為使用者提供了在本地計算機上完成遠端主機工作的能力。在終端使用者的電腦上使用teln
讓程式顯示執行時間
實現效果: 關鍵知識: StatusStrip控制元件,TimeSpan的一些屬性,執行緒知識 實現程式碼: private void Form1_Load(object sender, EventArgs e) { DateTime
[轉]使用互斥物件讓程式只執行一次(delphi)
使用互斥物件讓程式只執行一次“怎麼讓我的程式在執行時不能重複開啟?”經常在論壇上看到有朋友問這方面的問題。本文將比較詳細的說明這一問題,並給出一個較為完善的解決方案。 儘管這已經不是一個新問題了,但這裡還是簡要的說明一下這種技術:這的確是一個相當有用的技術,可能你經常會注意到相當多的程式在執行之後當你再次點
Linux screen命令——會話分離(使程式後臺執行,不受網路連線限制)
Screen是一款由GNU計劃開發的用於命令列終端切換的自由軟體。使用者可以通過該軟體同時連線多個本地或遠端的命令列會話,並在其間自由切換。GNU Screen可以看作是視窗管理器的命令列介面版本。它提供了統一的管理多個會話的介面和相應的功能。會話恢復只要Screen本身沒有
雲伺服器中讓jupyter後臺執行的方法
1. 後臺執行 在雲伺服器中搭建好jupyter並執行後, 發現它會佔用當前終端, 於是研究了一下怎麼讓它在後臺執行. 1.入門級: jupyter notebook --allow-root > jupyter.log 2>&1 & 2.進階版: nohup j
Linux下淺析程式的執行過程
本文的主要內容: 1>程式執行的4個階段。 2>淺析靜態庫和動態庫。 3>淺析Linux下的主要目錄的作用。 1、程式執行的4個階段: 在前邊的文章http://blog
java中用try如果catch到異常,怎麼把這個異常處理掉讓程式繼續執行
需要先將Scanner內的輸入清楚,不然就重複讀取了。簡單呼叫Scanner 的next()方法就可以了 測試已通過 package zhidao; import java.util.Scanner; public class Retry { private
python指令碼如何在linux下作為服務後臺執行
我們在編寫python指令碼時候有時候希望將指令碼作為服務執行在後臺,這樣再離開終端的時候程式可以正常執行。 這裡推薦一種比較方便的命令可以使得指令碼後臺執行: nohup python filename.py & 引數說明:nohup命令指
windows 下redis在後臺執行
1. 進入 DOS視窗 2. 在進入redis的安裝目錄 3. 輸入:redis-server --service-install redis.windows.conf --loglevel ver
保持python程式後臺執行的簡單方法
有一種簡單的辦法可以保持python在後臺執行,原理是利用了圖形庫的loop來讓自己保持駐留。 from tkinter import * root = Tk() root.withdraw()
使用redis實現分散式鎖(在叢集環境下讓任務排隊執行)
需求:在叢集環境下,讀寫同一個資料庫表,我們為了保證資料的最終一致性,需要讓任務排隊執行。分散式鎖的實現方式,網上有很多種方式。 1.使用資料庫表實現; 2.使用zookeeper實現; 3.使用redis實現; 這裡講用redis實現的方法,其他兩種實
windows 下redis在後臺執行(親測)
1. 進入 DOS視窗 2. 在進入redis的安裝目錄 3. 輸入:redis-server --service-install redis.windows.conf --loglevel verbose ( 安裝redis服務 ) 4. 輸入:redis-
讓程式只執行一個例項(Delphi篇)
Windows 下一個典型的特徵就是多工,我們可以同時開啟多個視窗進行操作,也可以同時執行程式的多個例項,比如可以開啟許多個資源管理器進行檔案的移動複製操作。但有時出於某種考慮(比如安全性),我們要做出一些限制,讓程式只能夠執行一個例項。在Delphi程式設計中,筆者總結出