2012-07-23 3 views
0

bash 스크립트에서 실행되는 명령이 있습니다.bash 스크립트에서 여러 명령 실행

daemon -20 $exec -a -b $var & 

mycommand 명령과 함께 taskset 명령을 사용하고 싶습니다.

daemon -20 ; taskset -c 0,1 $exec -a -b $var & 

부 작동하지 않습니다. 무엇이 문제입니까? 예를 들어 echo와 함께 taskset을 사용하면 작동합니다.

데몬에서는 작동하지 않습니다.

업데이트 : @chepner 제 생각에는 제안한 세 번째 방법이 있습니다. 할 수는 있지만 procids를 다시 추출하지 않는 것이 좋습니다. 저는 데몬으로 데몬을 실행하고 -20을 process의 좋은 값으로 설정했습니다. 그렇다면 taskset을 사용하여 CPU 선호도와 nice 명령을 함께 설정하여 우선 순위를 설정하는 방법도 있습니다.

+0

sed 또는 awk와 관련이있는 것은 무엇입니까? –

답변

0

세미콜론은 두 개의 서로 다른 프로세스를 구분합니다 (눈에 보이는 새 행으로 간주).

당신이 daemon -20 $exec -a -b $var & 실행

, 당신은 (다른 사람들) 데몬으로 실행하는 프로그램으로 변수 exec에 저장된 인수를 단일 명령, daemon을 실행하고 있습니다.

[올바르게 생각한다면 taskset 명령을 사용하여 두 개의 데몬을 시작하고 싶습니다. 당신이 원하는 것 같아요

taskset -c 0,1 daemon -20 taskset -c 0,1 $exec -a -b $var 

업데이트 : 나는 틀린 것 같아! 그리고 이것은 두 번 호출 된 taskset과 함께, 어쨌든 끔찍한 중복 오류가있는 것 같습니다. 착해 보이는

  1. daemon taskset -c 0,1 $exec -a -b $var을,하지만 난 그게 아마 taskset 데몬하지 $exec을 만들기 때문에, 잘못 생각 : ]

    몇 가지 가능성이 있습니다.

  2. taskset -c 0,1 daemon $exec -a -b $var 이는 이전의 대답 중 약간 수정 된 양식으로 taskset에 대한 추가 호출이 제거되었습니다. 나는 이것이 당신이 원하지 않는 두개의 데몬을 만든다고 생각합니다.

  3. 처음에는 daemon -20 $exec -a -b $var &처럼 데몬을 시작하십시오. 그런 다음 실행중인 프로세스 ID가 $exec인지 확인하십시오. 마지막으로 taskset -c 0,1 -p $PID을 실행하십시오. 여기서 PID$exec의 프로세스 ID입니다.

난 당신이 # 3를 사용할 필요가 있다고 생각하는 이유는 daemontaskset 각각 인수로 명령을 것입니다 그 명령을 실행합니다. 하나의 라인에서 다른 사람이 시작한 명령에 대해 (쉽게) 행동 할 수는 없습니다. 또는 아무것도하지 않을 수 있습니다 단지 하나의 인수 (-20) (필자는 daemon 명령에 익숙하지 않은 해요)와


귀하의 시도,

daemon -20 ; taskset -c 0,1 $exec -a -b $var & 

전화 daemon.완료되면 taskset 명령을 호출하여 두 개의 프로세서에서 $exec이라는 이름의 실행 파일을 실행합니다.

+0

2 프로세스가 없습니다. 단일 프로세스를 실행하고 싶습니다 $ exec -a -b $ var & 실행 파일과 인수는 process1 인수로 생각합니다. 그래서 process1을 데몬으로 실행하고 0,1 cpu 코어를 설정하려고합니다. – barp

0

귀하의 질문에 답변이되지 않으면 올바르게 이해할 수 있는지 잘 모르겠습니다. 실례합니다.

이 작업을 수행 할 수 있습니다 : 다음 데몬 명령을 실행합니다

daemon -20 $exec -a -b $var & 
taskset -p -c 0,1 $! 

이 바로이 CPU 선호도, 또는 설정 : 처음에 적절한 친화력을 가진 데몬을 시작

taskset -c 0,1 daemon -20 $exec -a -b $var & 

장소.

면책 조항 : 저는 taskset 명령에 익숙하지 않습니다. 이 대답은 전적으로 taskset man 페이지를 읽은 것에 근거합니다.

편집 : 나는 정확히 daemon 명령에 익숙하지 않습니다. 지정된 친화력으로 백그라운드에서 $ exec에 저장된 명령을 실행하기 만하면 충분합니다.

taskset -c 0,1 $exec -a -b $var & 
관련 문제