Ubuntu
AWS 使用者數據執行後啟動服務
我正在建構一個基於 Ubuntu 16.04 AMI 的 AMI。
當我從我的 AMI 啟動一個實例時,我想傳入一個在 AMI 上啟動服務之前執行的使用者數據腳本。
看起來使用者數據是在
cloud-final.service
. 如果我systemctl status cloud-final
或journalctl -u cloud-final
我看到我的使用者數據腳本的輸出。我嘗試設置我的 .service 文件以在 cloud-final.service 之後啟動服務
[Unit] Description=My Service After=network.service After=cloud-final.service ...
但是 cloud-final has
RemainAfterExit=yes
,這意味著它永遠不會完成,所以我的服務永遠不會啟動。在執行使用者數據腳本後,如何配置 AWS Ubuntu 以啟動我的服務?
採用
[Unit] … After=cloud-final.service … [Install] WantedBy=cloud-init.target
我也遇到了這個。顯示了在達到目標之後和之前
journalctl
執行的使用者數據內容。multi-user``cloud-init
<timestamp> <ip_addr> systemd[1]: Reached target Multi-User System. [snip] <timestamp> <ip_addr> systemd[1]: Starting Execute cloud user/final scripts... <timestamp> <ip_addr> user-data[1592]: my user data stuff [snip] <timestamp> <ip_addr> systemd[1]: Started Execute cloud user/final scripts. [snip] <timestamp> <ip_addr> systemd[1]: Reached target Cloud-init target.
所以我認為它是需要/想要的,
cloud-init
而不是通常的multi-user
目標(這可能是 op 所擁有的),它就起作用了。