쉘프로그램 작성중인데 문제가 있네요.

ganzboy의 이미지

쉘프로그램 작성중입니다.

이제 막 알아가는 단계이기때문에 간단한 스크립트를 만들어보고 있습니다.

사설인증기관을 만들고, 인증서 검증을 위해 OCSP를 실행시키는 스크립트를 짜고 있습니다.

제가 실행해야 하는 명령은

openssl ocsp -index index.txt -port 8888 -rsigner ca.crt -rkey ca.key -CA ca.crt -text -out log.txt

이 명령어 입니다.

실제 명령어를 치면 정상적으로 되며, 아래와 같이 expect 를 사용하여 프로그램을 짰습니다.

----------------------------------------------------------------
#!/usr/bin/expect

spawn bash -c "openssl ocsp -index index.txt -port 8888 -rsigner ca.crt -rkey ca.key -CA ca.crt -text -out log.txt";
expect -re ".key";
send "abcdef1234\r";

interact
----------------------------------------------------------------

정상적으로 OCSP가 동작합니다.

하지만 ssh가 종료된 후에도 돌아가야 하기때문에 nohup으로 실행시켜야 합니다.

스크립트를 실행시킬때

nohup ./start.sh & 로 실행시키면 될거라 생각했는데 정상적으로 동작하지 않네요.

혹시 expect는 nohup로 실행시키기 못하나요?

스크립트 내부에서 nohup로 띄우는 것도 시도해보았지만 잘 되지 않네요.

관련해서 조언좀 부탁드립니다.

김정균의 이미지

screen 을 이용해 보세요.

[user@host ~]$ screen -S SCREEN_NAME -d -m "expect -f some_expect.expect"

이렇게 하시면.. expect 수행이 종료 될 때 자동으로 screen 도 종료가 됩니다.

돌아가고 있는 것 확인 하고 싶으시면

[user@hsot ~]$ screen -ls
[user@host ~]$ screen -r SCREEN_NAME

으로 확인 가능 합니다.

요즘은 screen 보다 tmux 가 더 좋다고 합니다.

1회성 스크립트에 무슨 nohup입니까?의 이미지

패스워드 집어 넣고 끝나는 스크립트입니다. nohup 계속 실행되는 스크립트나 프로그램을 백그라운드로 중단없이 실행하는 명령어입니다.

ganzboy의 이미지

저것도 중단없이 빽그라운드에서 계속 돌려놓기 위함입니다만...