MPROCS는 여러 명령을 병렬로 실행하고 각 명령의 출력을 별도로 표시합니다.
프로젝트에서 작업 할 때는 종종 실행중인 동일한 명령 목록이 필요합니다. 예를 들어 : webpack serve , jest --watch , node src/server.js . MPROC를 사용하면 mprocs.yaml 에이 명령을 나열하고 mprocs 실행하여 모두 실행할 수 있습니다. 그런 다음 실행중인 명령의 출력간에 전환하고 상호 작용할 수 있습니다.
동시에 비슷하지만 MPROCS는 각 명령의 출력을 별도로 표시하고 프로세스와 상호 작용할 수 있습니다 ( MPROC 내부의 VIM 에서도 작동 할 수도 있음).


플랫폼에 대한 실행 파일을 다운로드하여 PATH에 포함 된 디렉토리에 넣으십시오.
npm install -g mprocsyarn global add mprocsbrew install mprocscargo install mprocsscoop install mprocsyay mprocsyay mprocs-bingit clone ' https://mpr.makedeb.org/mprocs '
cd mprocs/
makedeb -simprocs "yarn test -w" "webpack serve" 실행 mprocs cmd1 cmd2 …또는
mprocs.yaml 파일을 만듭니다mprocs 명령을 실행하십시오 예제 mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testJSON/YAML 구성 스키마
두 가지 종류의 구성에는 글로벌과 로컬입니다. 글로벌 구성은 ~/.config/mprocs/mprocs.yaml (또는 Windows의 ~AppDataRoamingmprocsmprocs.yaml )에서로드됩니다. 로컬 구성은 현재 디렉토리에서 mprocs.yaml 에서로드됩니다 (또는 CLI 인수를 통해 설정 : mprocs --config ./cfg/mprocs.yaml ). 로컬 구성의 설정은 글로벌 설정을 대체합니다.
<CONFIG_DIR> 구성이있는 디렉토리의 경로로 대체됩니다.x 키 사용 또는 MPROC를 종료 할 때).Keymap_Procs , Keymap_term 또는 KeyMap_copy 필드를 사용하여 구성에서 기본 키 바인딩을 재정의 할 수 있습니다. 사용 가능한 명령은 원격 제어 섹션에 문서화되어 있습니다.
세 가지 키 맵 레벨이 있습니다.
~/.config/mprocs/mprocs.yaml (또는 ~AppDataRoamingmprocsmprocs.yaml Windows)./mprocs.yaml ( -c/-config cli arg에 의해 재정의 될 수 있음) 낮은 레버는 이전 레벨에서 바인딩을 무시합니다. reset: true 필드를 지정하여 이전 레벨의 주요 바인딩을 지울 수 있습니다.
키 바인딩은 < , eg, <Enter> (enter key), <Down> ( > 화살표), <Up> (up Arrow), <Cq> (ctrl + q) 사이에 정의됩니다.
keymap_procs : # keymap when process list is focused
<C-q> : { c: toggle-focus }
<C-a> : null # unbind key
keymap_term : # keymap when terminal is focused
reset : true
<C-q> : { c: toggle-focus }
<C-j> :
c : batch
cmds :
- { c: focus-procs }
- { c: next-proc } $select현재 운영 체제에 따라 다른 값을 정의 할 수 있습니다. 구성의 모든 값은 $ 선택 연산자로 포장 할 수 있습니다. 현재 OS를 기반으로 다른 값을 제공하려면 객체를 다음과 같이 정의합니다.
$select: osmacos: value . 가능한 값은 여기에 나열되어 있습니다 : https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value 일치합니다. 현재 OS가 일치하지 않고 Field $else 누락되면 MPROC는 구성을로드하지 않습니다. 예제 mprocs.yaml :
procs :
my process :
shell :
$select : os
windows : " echo %TEXT% "
$else : " echo $TEXT "
env :
TEXT :
$select : os
windows : Windows
linux : Linux
macos : Macos
freebsd : FreeBSD --npm 인수가있는 mprocs를 실행하면 package.json 에서 스크립트를로드합니다. 그러나 스크립트는 기본적으로 실행되지 않으며 원하는 스크립트를 수동으로 시작할 수 있습니다.
# Run mprocs with scripts from package.json
mprocs --npm프로세스 목록 중심 :
q 종료 (소프트 킬 프로세스를하고 기다렸다가 종료)Q 강제 종료 (프로세스 종료)Ca 포커스 출력 창x 소프트 킬 선택 프로세스 (Sigterm Seign, Hard Kill on Windows)X 하드 킬 선택 프로세스 (SIGKILL 보내기)s 선택된 프로세스 시작, 실행되지 않은 경우r 소프트 킬 선택 프로세스 및 중지되면 다시 시작합니다.R 하드 킬 선택 프로세스 및 중지되면 다시 시작합니다.a 새로운 프로세스 추가C 선택된 프로세스 중복d 선택된 프로세스 제거 (프로세스를 먼저 중지해야 함)e 선택된 프로세스 이름을 바꿉니다k 또는 ↑ - 이전 프로세스를 선택하십시오j 또는 ↓ - 다음 프로세스를 선택하십시오M-1 - M-8 프로세스 1-8을 선택하십시오Cd 또는 page down - 출력을 아래로 스크롤하십시오Cu 또는 page up 출력을 스크롤하십시오Ce 출력을 3 줄로 스크롤하십시오Cy 출력을 3 줄로 스크롤하십시오z 터미널 창을 확대합니다v 복사 모드를 입력하십시오프로세스 출력 초점 :
Ca 포커스 프로세스 창복사 모드 :
v 엔드 포인트 선택을 시작하십시오c 선택된 텍스트를 복사하십시오Esc 복사 모드를 남기십시오Ca 포커스 프로세스 창Cd 또는 page down - 출력을 아래로 스크롤하십시오Cu 또는 page up 출력을 스크롤하십시오Ce 출력을 3 줄로 스크롤하십시오Cy 출력을 3 줄로 스크롤하십시오h 또는 ↑ - 커서를 위로 움직입니다l 또는 → - 커서를 오른쪽으로 이동하십시오j 또는 ↓ - 커서를 아래로 이동하십시오h 또는 ← - 커서를 왼쪽으로 이동하십시오 선택적으로 MPROC는 원격 명령을 위해 TCP 포트에서들을 수 있습니다. mprocs.yaml ( server: 127.0.0.1:4050 ) 또는 CLI 인수 ( mprocs --server 127.0.0.1:4050 )에서 원격 제어 서버 주소를 정의해야합니다. MPROCS 인스턴스 실행에 명령을 보내려면 CTL 인수 mprocs --ctl '{c: quit}' 사용 mprocs --ctl '{c: send-key, key: <Cc>}' .
명령은 Yaml로 인코딩됩니다. 사용 가능한 명령 :
{c: quit-or-ask} -프로세스 중지 및 종료. 프로세스가 실행중인 경우 확인 대화 상자를 표시하십시오.{c: quit} - 프로세스 중지 및 종료. 확인 대화 상자가 표시되지 않습니다.{c: force-quit}{c: toggle-focus} - 프로세스 목록과 터미널 간의 토글 초점.{c: focus-procs} - 포커스 프로세스 목록{c: focus-term} - 포커스 프로세스 터미널 창{c: zoom} - 터미널 창을 확대하십시오{c: next-proc}{c: prev-proc}{c: select-proc, index: <PROCESS INDEX>} - 인덱스별로 프로세스 선택, 최상위 프로세스가 색인 0{c: start-proc}{c: term-proc}{c: kill-proc}{c: restart-proc}{c: force-restart-proc}{c: show-add-proc}{c: add-proc, cmd: "<SHELL COMMAND>"}{c: duplicate-proc}{c: show-remove-proc}{c: remove-proc, id: "<PROCESS ID>"}{c: show-rename-proc}{c: rename-proc, name: "<NEW_NAME>"} - 현재 선택된 프로세스 이름을 바꿉니다{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} -복사 모드를 입력하십시오{c: copy-mode-leave} -복사 모드를 남겨 둡니다{c: copy-mode-move, dir: <DIRECTION> } -선택의 시작 또는 종료 위치 이동. 사용 가능한 지시 사항 : up/right/down/left .{c: copy-mode-end} -선택의 끝점 선택을 시작합니다.{c: copy-mode-copy} -선택한 텍스트를 클립 보드에 복사하고 복사 모드를 남겨 둡니다.{c: send-key, key: "<KEY>"} - 현재 프로세스로 키를 보내십시오. 주요 예 : <Ca> , <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - 여러 명령 보내기 MPROC 는 컴파일러 및 테스트 러너와 같이 반복적으로 실행되는 특정 명령을보다 쉽게 실행할 수 있도록합니다. 이는 일반적으로 각 창/창에서 훨씬 더 오래 지속되는 프로세스 (일반적으로 쉘)를 실행하는 데 사용되는 TMUX 와 대조적입니다. 또 다른 차이점은 TMUX가 서버와 클라이언트를 실행하여 클라이언트가 나중에 분리하고 다시 시작하여 프로세스를 실행할 수 있다는 것입니다. MPROCS는 다시 실행하는 유한 평생 프로세스를위한 것이지만 MPROCS가 끝나면 Windows 내에서 실행되는 프로세스도 마찬가지입니다.
TMUX에는 기본적으로 복사 할 수있는 탈출 시퀀스가 없습니다. 다음을 ~/.tmux.conf 에 추가하십시오.
set -g set-clipboard on