서버가 다시 시작될 때 사용자로 Python 스크립트를 실행하고 싶습니다. 서버 자체는 Terraform을 통해 Azure에서 실행됩니다.
이라는 시작 스크립트가 이미 있습니다 startup.sh
. 서버에서 다시 시작이 필요한 다양한 작업을 수행합니다. 스크립트에서 Python 스크립트를 실행하게 하는 줄을 추가하고 싶습니다.뒤쪽에다시 시작됩니다. 실행하려는 명령에 대한 자리 표시자가 있는 지금의 모습은 다음과 같습니다.
#!/bin/bash
# fix cuda for azure. for some reason their instances have cuda installed wrong and this fixes it
sudo rm /usr/local/cuda
sudo ln -sf /usr/local/cuda-10.2 /usr/local/cuda
# pip install a few things. TF, for instance
pip install tensorflow
# HERE'S WHERE I NEED HELP:
some_command_to_make_something_run_on_next_startup --as_this_user nonRootUser --run_this_command "python myscript.py"
sudo reboot # the reboot is needed to make the cuda changes work
나는 /etc/rc.local
성공하지 못한 채 콘텐츠를 추가하려고 시도했습니다. 이유는 모르겠습니다. cron도 마찬가지입니다. 제가 온라인에서 수집한 바에 따르면 새로 시작된 인스턴스에서는 둘 다 활성화되지 않은 것으로 보이며 cron은 수동 시작에 의존하는 것 같습니다.
최종 용도는 동일한 작업을 수행하기 위해 많은 수의 서버를 가동하는 것이므로 이 모든 작업은 상호 작용 없이 수행되어야 합니다.