Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Macos 创建启动两个进程的bash别名?_Macos_Bash_Alias - Fatal编程技术网

Macos 创建启动两个进程的bash别名?

Macos 创建启动两个进程的bash别名?,macos,bash,alias,Macos,Bash,Alias,我想创建一个别名,该别名: 更改目录 启动redis 启动节点应用程序 我可以通过创建一个别名来做到这一点,如下所示: alias startSP='cd mydirectory; redis-server;node myApp.js' 问题是在我杀死redis之前,节点myApp.js片段不会运行。有没有什么方法可以让我在不等待第一个进程完成的情况下启动两个进程 我是否应该尝试打开第二个选项卡来执行此操作?而不是,它按顺序分隔两个进程,您可以使用&,它在后台启动一个进程,然后在前台运行另一个

我想创建一个别名,该别名:

  • 更改目录
  • 启动redis
  • 启动节点应用程序
  • 我可以通过创建一个别名来做到这一点,如下所示:

    alias startSP='cd mydirectory; redis-server;node myApp.js'
    
    问题是在我杀死redis之前,
    节点myApp.js
    片段不会运行。有没有什么方法可以让我在不等待第一个进程完成的情况下启动两个进程


    我是否应该尝试打开第二个选项卡来执行此操作?

    而不是
    ,它按顺序分隔两个进程,您可以使用
    &
    ,它在后台启动一个进程,然后在前台运行另一个进程:

    alias startSP='cd mydirectory ; redis-server & node myApp.js'
    

    而不是
    ,它按顺序分隔两个进程,您可以使用
    &
    ,它在后台启动一个进程,然后在前台运行另一个进程:

    alias startSP='cd mydirectory ; redis-server & node myApp.js'
    

    我没有办法测试这一点,但是添加'&'在后台运行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....
    
    有很多方法会出错,因此您最好检查您的特定案例

    • 是否有其他正在运行的redis服务器副本是您不想杀死的
    • 是否有其他节点副本正在运行,然后,如何区分这些副本
    • 如何确保正在删除node的“myApp.js”版本
    如果我一直这样做,我会将
    startPS
    转换成一个函数,捕获使用“&”返回的PID,将这些PID保存到环境中,然后有一个单独的函数,可以确认这些PID存在,并且它们很可能是正确的程序,然后发出kill

    还要注意的是,
    kill-15
    是杀死程序的首选方式,使其有机会关闭文件等


    IHTH.

    我没有办法测试这个,但是在后台添加“&”来运行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....
    
    有很多方法会出错,因此您最好检查您的特定案例

    • 是否有其他正在运行的redis服务器副本是您不想杀死的
    • 是否有其他节点副本正在运行,然后,如何区分这些副本
    • 如何确保正在删除node的“myApp.js”版本
    如果我一直这样做,我会将
    startPS
    转换成一个函数,捕获使用“&”返回的PID,将这些PID保存到环境中,然后有一个单独的函数,可以确认这些PID存在,并且它们很可能是正确的程序,然后发出kill

    还要注意的是,
    kill-15
    是杀死程序的首选方式,使其有机会关闭文件等


    IHTH.

    为什么不在您的个人资料中添加一个函数呢

    startSP(){
     cd /your/directory
      redis-server && node myApp.js
    
    }


    &&将启动make node myApp.js,等待redis服务器启动

    为什么不在您的配置文件中添加一个函数呢

    startSP(){
     cd /your/directory
      redis-server && node myApp.js
    
    }


    &&将启动使节点myApp.js等待redis服务器启动

    Awesome!如果我返回到命令行,我将如何在完成后终止进程?@AbeMiessler:请参阅我的编辑。你会在S.O.上找到很多关于便携式杀掉应用程序的方法与快速肮脏的方法的讨论。太棒了!如果我返回到命令行,我将如何在完成后终止进程?@AbeMiessler:请参阅我的编辑。在S.O.网站上,你会发现很多关于便携式杀戮应用程序的方法与快速肮脏的方法的讨论。使用别名进行杀戮的好处是什么?使用别名进行杀戮的好处是什么?