Option 1 -> "Under truce" is not a standard phrase; truce refers to a temporary peace agreement, not a prolonged condition affecting a city.
Option 2 -> "Under siege" is the correct phrase; a siege is a military blockade of a city that can last for extended periods.
Option 3 -> An ambush is a sudden surprise attack, not a prolonged event lasting months; "under ambush" is also not idiomatic.
Option 4 -> An explosion is an instantaneous event, not something lasting seven months; "under explosion" is grammatically incorrect.
Hence, Option 2: siege -> "Under siege" is a standard expression describing a military operation where a city is surrounded and cut off for an extended period, which perfectly fits the context of "almost seven months" -> correct