다음을 사용하면 언제든지 컨테이너를 성공적으로 시작할 수 있습니다.
fadedbee@host:~$ sudo lxc-start -n mycontainer
로컬 ZFS의 일부 디렉토리를 바인딩할 때까지 자동으로 시작되었습니다.
/etc/rc.local에 다음을 추가했습니다.
/bin/date >> /var/log/mycontainer.log
/bin/chmod a+r /var/log/mycontainer.log
/usr/bin/lxc-start -o /var/log/mycontainer.log
-l INFO -n mycontainer > /var/log/mycontainer.stdout 2> /var/log/mycontainer.stderr &
/var/log/mycontainer.log 파일이 생성되지만 날짜만 포함되고 다른 내용은 포함되지 않습니다.
루트의 crontab에 다음을 추가했습니다.
@reboot /usr/bin/lxc-start -o /var/log/mycontainer.log -l INFO -n mycontainer
그러나 그것도 아무런 성과를 내지 못했습니다.
나는 이 모든 일이 ZFS가 완성되기 전에 일어났을 것이라고 강하게 의심합니다. cron 항목에 추가해도 sleep 30 ;
도움이 되지 않습니다.
나를 혼란스럽게 하는 것은 로그 stderr, stdout 또는 로그 출력을 전혀 얻지 못한다는 것입니다.
컨테이너를 자동으로 시작하거나 최소한 로그 출력을 확인하려면 어떻게 해야 하나요?
고쳐 쓰다:
나는 다음을 추가했습니다:
*/5 * * * * /usr/bin/lxc-start -n mycontainer
루트의 크론에 추가했지만 여전히 시작되지 않습니다. 이것동일한(sudo'd) bash 프롬프트의 명령이 작동합니다. 루트에 대한 나머지 cron 항목은 예상대로 작동합니다.
답변1
부팅 시 LXC 컨테이너를 시작하기 위해 lxc 시스템 서비스는 설명된 대로 lxc-autostart를 실행합니다.여기.
자동 시작을 구성하려면 컨테이너 구성에 다음 두 줄을 입력하세요.
lxc.start.auto = 1
lxc.start.delay = 30
지연은 초 단위로 원하는 값으로 설정할 수 있습니다.
crontab에는 아무것도 있을 수 없습니다. 시스템을 다시 시작하면 lxc 서비스가 해당 작업을 수행합니다.
시작 시 LXC 자동 시작이 실행되고 있는지 확인할 수 있습니다. systemd 시스템에서 이 작업을 수행하려면 systemd 서비스를 나열하고 lxc.service
다음과 같이 확인할 수 있습니다.
systemctl -la | grep 'lxc\.service'
다음과 같은 줄이 표시되어야 합니다.
lxc.service loaded active exited LXC Container Initialization and Autoboot Code
다음과 같은 줄이 표시되지 않으면 서비스를 활성화해 보십시오.
sudo systemctl enable lxc
답변2
@rexkogitans가 제공하는 "공식" 솔루션을 사용하는 것이 좋습니다.
cron에서 시작되지 않은 프로그램은 일반적으로 다른 환경에 직면합니다. 실행 셸 sh
과 환경 변수는 일반적으로 대화형 셸과 다릅니다. 관심이 있다면 cron과 같은 명령을 실행 set
하고 env
출력을 파일로 지정하세요.
답변3
편집: crontab -e에 필요한 경로 데이터를 추가하여 문제를 해결했습니다. 다음 줄을 추가했습니다.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
crontab 주석 뒤와 작업 목록 앞.
문제(및 해결 방법)는 명령줄의 출력을 비교하여 부분적으로 확인할 수 있습니다.
env
(임시) 크론 작업:
* * * * * env > env_dump.txt
내 경우에는 경로가 동일하지 않았고 cron 경로가 lxc-start를 시작하기에 충분하지 않았습니다.
비슷한 문제가 있습니다. 부스팅 su -
및 발행 (debian 11) 후 lxc-start -n test
내 컨테이너는 명령줄에서 정상적으로 시작됩니다.
tar.gz rootfs 컨테이너를 중지한 다음 다시 시작하는 백업 스크립트가 있습니다. cron을 통해 cron에서 스크립트를 실행합니다 sh /home/dave/backup.sh
. 모든 단계를 예상대로 수행하지만컨테이너를 다시 시작하지 못했습니다.완료되면. 유용한 오류 메시지를 찾을 수 없습니다. 쉘에서 이 정확한 명령을 실행하면 제대로 작동합니다. 어쨌든 cron에 관한 문제가 문제를 일으켰습니다. 이 문제가 해결된 적이 있나요?