단일 터미널에서 동시에 명령을 실행하는 방법

단일 터미널에서 동시에 명령을 실행하는 방법

이 질문은 어딘가에서 답변을 받아야 할 것 같지만 평생 찾을 수 없어서 그냥 물어보겠습니다...

터미널에서 2개의 명령을 동시에 실행하려고 하는데 동시에 실행해야 하며 두 명령 모두 진행 중인 포그라운드 명령이어야 합니다.

어떻게 해야 하나요?

예를 들어:

npm run serve그리고 docker-compose up.

예를 들어 단일 명령줄 연산자를 사용하여 여러 "종료/중지" 명령을 실행할 수 있다는 것을 알고 있습니다. &&또는 ;표준 종료 작업 ||과 함께 단일 명령을 사용하여 동일한 터미널 창에서 두 명령을 동시에 실행해야 합니다 . cntrl + c가능합니까?

답변1

싱글을 사용하시네요&

command1 & command2 &

각각은 다음부터 시작됩니다.배경.

운이 좋으면 두 가지 작업이 동시에 실행될 수도 있습니다.

parallel <<EOF
command1
command2
EOF

그러나 이것은 순수한 난교가 아닙니다. 방금 사용 여부 parallel와 살해 여부를 확인했습니다.그룹, 병렬로 시작된 하위 프로세스를 종료합니다.

kill -- -pid-of-parallel

따라서 병렬 프로세스의 PID가 54인 경우 다음을 실행합니다.

kill -- -54

그러면 효과가 있을 것입니다.

답변2

동일한 터미널에 동시에 두 개의 포그라운드 프로세스를 가질 수는 없지만 여러 개의 백그라운드 프로세스를 가질 수 있습니다.

다른 답변에서 언급했듯이 각각 백그라운드에서 실행되는 두 개의 프로세스를 생성하는 bash one-liner를 제공할 수 있습니다.
명령 1 & 명령 2 &

두 프로세스의 출력은 동일한 터미널로 이동하지만 둘 다 백그라운드에 있기 때문에 둘 중 하나와 상호 작용할 수 없습니다. 이들 중 하나와 상호 작용하려면 '를 사용하여 전경으로 가져올 수 있습니다.퍼그'. 그런 다음 배경으로 다시 넣으려면 사용할 수 있습니다.Ctrl+Z프로그램을 일시 중지한 다음 '배경' 프로그램이 백그라운드에서 계속 실행되도록 허용합니다.

사용해도 돼'그들 모두를 죽일' 대신 프로세스를 종료하는 명령Ctrl+C이러한 프로세스가 백그라운드에 있기 때문입니다. 아니면 '를 사용할 수도 있습니다.퍼그' 명령은 프로세스를 다시 전경으로 가져온 다음 사용할 수 있습니다.Ctrl+C그들을 죽여 버려.

사용'일하다' 명령을 사용하여 셸에서 실행 중인 백그라운드 프로세스를 확인합니다. 사용해도 돼'무게%' 특정 작업을 전면으로 가져옵니다.

관련 정보