What is the difference between “systemctl restart” and “systemctl start”?

Latest response

I have noticed that
-> "systemctl restart" command starts a service plus it also starts the dependent services
-> "systemctl start" command starts the service but it does not starts the dependent services

What is the difference between these 2 commands? Why is "systemctl start" not starting the dependent services as it is the case in "systemctl restart"

Take a look at the following scenario

I have two services A and B where A is dependent on B which means in the A's service unit i have After and Requires set to B

After=B.service
Requires=B.service

Now when i stop the service B the service A also stops. And then after stopping B when i start it, the service A is not started and i have to start it manually.

systemctl stop B (A is also stopped)
systemctl start B (A is not started)
systemctl start A (I have to start A manually)

But if the service A is already stopped and i restart service B then the B and A both are started by the systemctl

systemctl stop A
systemctl restart B (B and A both are started)

My question is what is difference between start and restart for the kind of service unit i have for A?

Responses