WaitForSeconds working but going infinitely

i am new to coding… here is my code…

using UnityEngine;
using System.Collections;

public class invib : MonoBehaviour {

// Use this for initialization
void Start () {
	
	//Debug.Log("okay:");
	StartCoroutine(invi());
	//Debug.Log("okay:2");

}
IEnumerator invi()
{
	yield return new WaitForSeconds(2);

	Debug.Log(Time.time);
            StopCoroutine(invi());

}

// Update is called once per frame
void Update () {

}

}

IT PRINTS FINE BUT… OUTPUT IS INFINTE…
2.01
2.4
3.9
etc…
plz help

@prashant2000 I would recommend you to do something like this.

Coroutine inviRoutine = null;

void Start()
{
inviRoutine = StartCoroutine(invi());
}

 IEnumerator invi()
 {
     yield return new WaitForSeconds(2);
     Debug.Log(Time.time);
     StopCoroutine(inviRoutine);
 }

Credits: http://answers.unity3d.com/answers/934495/view.html