我想在服务器重新启动时以用户身份运行 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 似乎依赖于手动启动。
最终用途将是启动大量服务器来执行相同的工作,因此所有这一切都需要在没有任何交互的情况下发生。