In automated manufacturing systems (AMSs), Petri nets are widely adopted to solve supervisory control problems. Among them, how to enforce liveness and fairness for AMS constitutes an important problem. Enforcing liveness avoids the occurrence of deadlock situations to inhibit the emergence of partial or complete blockness for processing jobs in AMS. Fairness requires the determination of a reasonable regulation scheme for orderly resolution such that a desired ratio can be assigned among different processes. This paper proposes an efficient method to design supervisors that enforce both, which is based on the invariance property of Petri nets. A novel approach is proposed to iteratively identify empty siphons as solutions to a set of linear inequalities. Supervisors are then designed to control these siphons. The applicability of the proposed methodology is illustrated through examples. Its comparison with existing works is presented to demonstrate its advantages.