我想创建一个别名:
我能够通过创建如下所示的别名来实现此目的:
alias startSP='cd mydirectory; redis-server;node myApp.js'
问题是node myApp.js
件在我杀死redis之前不会运行。有没有办法可以在不等待第一个完成的情况下启动两个进程?
我是否应该尝试打开第二个标签来执行此操作?
答案 0 :(得分:3)
我没有办法测试这个,但添加'&'在后台运行cmd应该可以工作,即
alias startSP='cd mydirectory ; redis-server & node myApp.js'
您可能想要添加第二个&,即
alias startSP='cd mydirectory ;redis-server & node myApp.js &'
因为这会将提示返回给您,您可以继续使用命令行。
修改强>
有许多方法可以杀死进程,在这里搜索S.O.如果幸运的话,你将能够做到
pkill redis-server
pkill node ...? hm....
有很多方法可以解决这个问题,所以你会更好地检查你的具体情况。
如果我要一直这样做,我会将startPS
变成一个捕获使用'&'返回的PID的函数,将这些pid保存到环境中,然后分开可以确认存在这些PID的函数,并且它们很可能是正确的程序,然后发出kill。
另请注意,kill -15
是杀死程序的首选方式,使其有机会关闭文件等。
IHTH。
答案 1 :(得分:2)
而不是按顺序分隔两个进程的;
,您可以使用&
,它在后台启动一个进程,然后在前台运行另一个进程:
alias startSP='cd mydirectory ; redis-server & node myApp.js'
答案 2 :(得分:0)
为什么不在您的个人资料中添加功能呢?
startSP(){
cd /your/directory
redis-server && node myApp.js
}
&&将启动make节点myApp.js等待redis-server启动