|
1 | 1 | [Unit]
|
2 |
| -Description=switch state service container |
| 2 | +Description=switch state service |
3 | 3 | Requires=database.service
|
4 | 4 | After=database.service
|
5 | 5 |
|
6 | 6 | [Service]
|
7 |
| -User={{ sonicadmin_user }} |
8 | 7 | # Wait for redis server start before database clean
|
9 | 8 | ExecStartPre=/bin/bash -c "while true; do if [ \"$(/usr/bin/docker exec database redis-cli ping)\" == \"PONG\" ]; then break; fi; sleep 1; done"
|
10 | 9 | ExecStartPre=/usr/bin/docker exec database redis-cli -n 0 FLUSHDB
|
11 | 10 | ExecStartPre=/usr/bin/docker exec database redis-cli -n 1 FLUSHDB
|
12 | 11 | ExecStartPre=/usr/bin/docker exec database redis-cli -n 2 FLUSHDB
|
13 |
| -ExecStart=/usr/bin/{{docker_container_name}}.sh start |
| 12 | + |
| 13 | +{% if sonic_hwsku == 'ACS-MSN2700' %} |
| 14 | +ExecStartPre=/etc/init.d/sxdkernel start |
| 15 | +ExecStartPre=/usr/bin/mst start |
| 16 | +ExecStartPre=/etc/mlnx/msn2700 start |
| 17 | +{% elif sonic_hwsku == 'AS7512' %} |
| 18 | +ExecStartPre=-/etc/init.d/xpnet.sh stop |
| 19 | +ExecStartPre=/etc/init.d/xpnet.sh start |
| 20 | +{% endif %} |
| 21 | + |
| 22 | +# systemd allows only one parent process within service, |
| 23 | +# so we spawn both dockers from single bash parent |
| 24 | +ExecStart=/bin/bash -c "/usr/bin/{{docker_container_name}}.sh start & /usr/bin/syncd.sh start & wait -n 0" |
| 25 | + |
14 | 26 | ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
15 | 27 | ExecStopPost=/usr/bin/syncd.sh stop
|
16 | 28 |
|
| 29 | +{% if sonic_hwsku == 'ACS-MSN2700' %} |
| 30 | +ExecStopPost=/etc/mlnx/msn2700 stop |
| 31 | +ExecStopPost=/etc/init.d/sxdkernel stop |
| 32 | +ExecStopPost=/usr/bin/mst stop |
| 33 | +{% elif sonic_hwsku == 'AS7512' %} |
| 34 | +ExecStopPost=/etc/init.d/xpnet.sh stop |
| 35 | +ExecStopPost=/etc/init.d/xpnet.sh start |
| 36 | +{% endif %} |
| 37 | + |
| 38 | + |
17 | 39 | [Install]
|
18 | 40 | WantedBy=multi-user.target
|
0 commit comments