저는 두 번째 GPU를 시작하고, 주어진 명령을 실행하고, 마지막으로 두 번째 GPU를 종료하도록 설계되었습니다 optirun
.bumblebee
단순화된 예:
optirun echo test | cat
optirun
그러나 GPU를 강제로 종료하려면 이제 후속 명령을 실행해야 하는 오류가 있습니다 .
echo test | cat
optirun을 실행한 다음 마지막에 명령을 사용하여 추적할 수 있도록 일부 복잡한 명령(예: 쉘 스크립트)을 쉽게 래핑할 수 있습니까 (내 버그 해결 방법)?
간단한 쉘 스크립트를 사용하여 이 작업을 수행할 수 없도록 하는 인용 및 모든 문제가 있는 것 같습니다.
답변1
$@
나는 당신이 스크립트의 매개변수 목록을 따르고 있다고 생각합니다 .
간단한 예:
$ cat >cc.sh <<EOF
#!/bin/sh
head "\$@"
echo I AM DONE
EOF
$ chmod 755 cc.sh
사용 매개변수:
$ ./cc.sh cc.sh
#!/bin/sh
head "$@"
echo I AM DONE
I AM DONE
STDIN/STDOUT에 적용 가능
$ cat cc.sh | ./cc.sh | tail -n 2
echo I AM DONE
I AM DONE
혼합물에 적합:
$ cat cc.sh | ./cc.sh -n 2 | tail -n 2
head "$@"
I AM DONE
그래서:
#!/bin/sh
optirun "$@"
rmmod <mod> [perhaps >/dev/null 2>&1 if you need to ignore errors from rmmod]
답변2
귀하의 예에서 명령줄에 예를 입력할 때 발생하는 optirun에 할당하려는 경우 다음을 수행하십시오 optirun echo test | cat
.echo test
#!/bin/sh
optirun "$@"
rmmod workaround
당신이 필요한 전부입니다. "myopti"라는 스크립트를 추가하면 이를 사용 myopti echo hello | cat
하고 정리할 수 있습니다.