MacOSX 10.8.2에서는 다음과 같이 bash 셸에서 vim을 실행할 수 있습니다.
/usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
정확히 동일한 명령을 스크립트에 넣으면 다음과 같습니다.
#! /bin/bash
export DISPLAY=:0
echo -n -e "\n[" `date` "]:\n\n">>~/.journal
/usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
스크립트를 실행하면 vim도 올바르게 열립니다.
그러나 crontab에 01diaryscript라는 스크립트를 넣으면 다음과 같습니다.
MAILTO=""
* * * * * ~/01diaryscript
vim을 열 수 없습니다. 하지만 고유한 ID를 사용하여 매분마다 새로운 vim 프로세스가 생성됩니다.
반면에 MacVim 패키지(7.3)에 포함된 vim을 사용하면 cron이 작동합니다.
cron에서 첫 번째 스크립트를 실행할 때 생성된 vim 프로세스에 액세스할 수 있도록 하는 방법이 있습니까?
답변1
crontab의 행에서는 스크립트가 매일 매분 시작되어야 한다고 구체적으로 요구합니다. 그 과정에서 볼 수 있듯이.
지금 vim을 볼 수 없는 이유는 cron이 "백그라운드에서" 설정한 명령을 생성했기 때문입니다. 따라서 직접 액세스할 수 없습니다. MacVim 패키지의 vim이 작동하는 이유를 모르기 때문에 설명할 수 없습니다.
작동하는 방법은 그래픽 VIM을 열거나 내부에 vim이 포함된 새로운 xterm을 여는 것입니다. 그것은 다음과 같습니다:xterm -e /usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
답변2
cron
터미널(또는 X 디스플레이) 없이 백그라운드에서 명령을 실행합니다. 해당 출력은 어디로 가야합니까? 임의 사용자의 크론 작업 결과를 내 화면에 표시하시겠습니까? 무의미한.
여기서 해결하려는 문제는 무엇입니까?