To achieve the desired sequence where `app1` starts, runs for 10 minutes, then `app2` starts and runs for 10 minutes, and this cycle repeats, you can create two separate timer units and services, one for each application, and use a cyclic approach. Here's how you can do it:
1. Create two timer units, one for each application, with cyclic activation:
`myapp1.timer`:
```ini
[Unit]
Description=Timer for My Application 1
[Timer]
OnBootSec=10min
OnUnitInactiveSec=10min
[Install]
WantedBy=timers.target
```
`myapp2.timer`:
```ini
[Unit]
Description=Timer for My Application 2
[Timer]
OnBootSec=20min
OnUnitInactiveSec=10min
[Install]
WantedBy=timers.target
```
In this configuration, `myapp1.timer` is set to trigger `myapp1.service` 10 minutes after boot and every 10 minutes after it becomes inactive. `myapp2.timer` is set to trigger `myapp2.service` 20 minutes after boot and every 10 minutes after it becomes inactive.
2. Create two service units, one for each application:
`myapp1.service`:
```ini
[Unit]
Description=My Application 1
[Service]
ExecStart=/path/to/app1
Restart=always
[Install]
WantedBy=multi-user.target
```
`myapp2.service`:
```ini
[Unit]
Description=My Application 2
[Service]
ExecStart=/path/to/app2
Restart=always
[Install]
WantedBy=multi-user.target
```
Replace `/path/to/app1` and `/path/to/app2` with the actual paths to your application executables.
3. Enable and start both timer units:
```
sudo systemctl enable myapp1.timer
sudo systemctl enable myapp2.timer
sudo systemctl start myapp1.timer
sudo systemctl start myapp2.timer
```
With this setup, `app1` will start when the system boots, run for 10 minutes, then stop. After that, `app2` will start and run for 10 minutes, and the cycle repeats. This pattern continues indefinitely.