Systemdでプログラムを初期起動させる際、周辺デバイス(たとえばLANとか)の立ち上げが遅くてアプリが起動できないといったケースがあります。
まぁ、疎通するまでリトライするとかすればいいのかもしれませんが。
今回は、Systemdのタイマーユニットを使ってみます。
実際のところ
前提
- Ubuntu 22 LTS
- 対象サービス"/etc/systemd/system/ros2-launch.service"が有効になっている
ros2-launch.timerというファイルをつくり
$ cd /etc/systemd/system/ $ sudo vim ros2-launch.timer
内容は以下のように
[Unit] Description=Delay ROS2 launch [Timer] OnBootSec=3min Unit=ros2-launch.service [Install] WantedBy=timers.target
$ sudo systemctl enable ros2-launch.timer
ros2-launch.serviceの"[Install]"とその内容を削除。