如何在linux环境下同时跑两个程序

如何在linux环境下同时跑两个程序,第1张

比如说,你的服务器程序名叫server
在终端运行
/server &
表示服务器后台运行
然后在运行客户端程序
结束的时候
ps
显示后台程序,记住进程号pid
kill -9 (进程号)
停止服务器程序

程序退到后台,并不会一直运行。在10分钟后苹果会自动结束这个程序。但在10分钟内还是可以一直向服务器发送请求的。退到后台在appdelegate中有一个uiapplication的代理方法,可以检测到程序已退到后台的动作,这时可以重新创建一个线程去请求服务器。

在“运行”中输入IEXPRESS
这是WINDOWS自带的打包程序
下一步-下一步-随便填个名字(下一步)-下一步-下一步-ADD(选好你的BAT文件 继续下一步)-Install里面选你刚加进去的文件(下一步)-hidden(下一步)-下一步-保存打包好的文件(勾一下hidden下一步)-下一步-dont save下一步-下一步-完成
以后运行打好包的EXE文件即可
就可以在后台运行
天涯问答:
可以编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序。
------------------------------------------------------------
Set ws = CreateObject("WscriptShell")
wsrun "cmd /c 批处理程序名",vbhide
------------------------------------------------------------
将水平线中代码拷贝到记事本中,保存为"runbatvbs"或者其它的名字(扩展名必须是vbs),然后点击运行生成的脚本runbatvbs,即可隐藏运行指定的批处理程序。这个vbs脚本也可以在其它环境中直接调用。

经典的启动“启动”文件夹,单击“开始→程序”,“启动”菜单,这就是最经典的Windows启动位置,放在这合理的程序和快捷方式都会在系统启动时自动运行。

智能的启动——开/关机/登录/注销脚本:
在Windows中,单击“开始→运行”,输入gpeditmsc回车可以打开“组策略编辑器”,在左侧窗格展开“本地计算机策略→ 用户配置→管理模板→系统→登录”,然后在右窗格中双击“在用户登录时运行这些程序”,单击“显示”按钮,在“登录时运行的项目”下就可以添加自启动的程序。

定时的启动——任务计划:
在默认情况下,“任务计划”程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或 “登录时”,这样也可以实现程序自启动。通过“计划任务”加载的程序一般会在任务栏系统托盘区里有它们的图标。可以双击“控制面板”中的“计划任务”图标查看其中的项目。

注册表启动项:注册表是启动程序最多的地方,主要有以下几项:
1Run键
Run键是病毒最青睐的自启动之所,该键位置是[HKEY_CURRENT_
USER\Software\Microsoft\Windows\CurrentVersion\Run]和[HKEY_
LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run],其下的所有程序在每次启动登录时都会按顺序自动执行。
还有一个不被注意的Run键,位于注册表[HKEY_CURRENT_
USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]和 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Policies\Explorer\Run]。
2RunOnce键
RunOnce位于[HKEY_CURRENT_USER\Software\Microsoft\Windows\
CurrentVersion\RunOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\RunOnce]键,与Run不同的是,RunOnce下的程序仅会被自动执行一次。
3RunServicesOnce键
RunServicesOnce键位于[HKEY_CURRENT_USER\Software\Microsoft\
Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\
Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]下,其中的程序会在系统加载时自动启动执行一次。
4RunServices键
RunServices继RunServicesOnce之后启动的程序,位于注册表[HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\RunServices]和[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]键。

5RunOnceEx键
该键是WindowsXP/2003特有的自启动注册表项,位于[HKEY_
CURRENT_USER\\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]和 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]。

6load键
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]下的load键值的程序也可以自启动。
7Winlogon键
该键位于位于注册表[HKEY_CURRENT_USER\SOFTWARE\
Microsoft\WindowsNT\CurrentVersion\Winlogon]和[HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell键值也会自启动程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。

8其他注册表位置
还有一些其他键值,经常会有一些程序在这里自动运行,如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]

提示:注册表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]键的区别:前者对所有用户有效,后者只对当前用户有效。

方法一:使用windows自带的命令sc\x0d\使用sccreate方法创建。\x0d\如:sccreateCaptureScreenbinpath=F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmapexetype=ownstart=autodisplayname=Screen_Capture\x0d\其中CaptureScreen为服务名,可以在系统服务中找到,(通过在命令行运行servicesmsc打开系统服务)。binpath为你的应用程序所在的路径。displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入regedit打开注册表,在HKEY_LOCAL_MACHINE--SYSTEM--CurrentControlSet下找到你的服务显示名)\x0d\注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切记。另外要以管理员的身份打开命令行。\x0d\这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。下面我们讨论第二种方法\x0d\方法二:在第一种方法失败的情况下,我们可以使用instsrvexe和srvanyexe两个小工具为我们分忧解难\x0d\我们可以在官网下载instsrvexe和srvanyexe然后放到自己的文件夹中,可以将文件夹放入C盘。下面我们开始注册服务。\x0d\已管理员的身份运行命令行,首先进入工具所在的文件夹,如:c:\tools。\x0d\执行c:\toolsinstsrvexeServerNamesrvanyexe\x0d\这样我们就创建了一个名为ServerName的srvany的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表\x0d\找到ServiceName这个服务,然后右键新建项,名称为Parameters。单击该项,然后在右边新建两个字符串值。第一个名为Application,值为:应用程序路径,如:c:\myAppexe。第二个名为AppDirectory,值为:应用程序所在目录,如:c:\。\x0d\接下来我们进入系统服务,找到ServiceName这个服务,双击进入它的属性。设置允许与桌面交互。然后启动服务。\x0d\至此我们完成了将exe注册为服务的过程。\x0d\下面我们分析一下:\x0d\instsrvexe可以创建和删除服务,然而如果没有srvanyexe的参与,创建的服务可能无法启动。那么srvanyexe做了些什么呢,启动服务后我们可以在任务管理器中找到我们的服务,然后右击服务,选择转到进程,(如果进程中没有任何项被选中,则点击下面的显示所有用户进程,然后重新选择转至进程),我们看到的是srvanyexe,而不是我们自己的exe。原来我们的exe成为了它的一个子项,由srvanyexe帮助启动。

首先利用
osremove() will remove a file
osrmdir() will remove an empty directory
shutilrmtree() will delete a directory and all its contents
写你的模块
利用Linux crontab定时任务运行这个模块。
还可以以守护进程的方式运行你的脚本。nohup <程序名> &


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13072195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存