  The framework of inner product norm preserving relaxation Runge-Kutta methods (David I. Ketcheson, \emph{Relaxation Runge-Kutta Methods: Conservation and Stability for Inner-Product Norms}, SIAM Journal on Numerical Analysis, 2019) is extended to general convex quantities. Conservation, dissipation, or other solution properties with respect to any convex functional are enforced by the addition of a {\em relaxation parameter} that multiplies the Runge-Kutta update at each step. Moreover, other desirable stability (such as strong stability preservation) and efficiency (such as low storage requirements) properties are preserved. The technique can be applied to both explicit and implicit Runge-Kutta methods and requires only a small modification to existing implementations. The computational cost at each step is the solution of one additional scalar algebraic equation for which a good initial guess is available. The effectiveness of this approach is proved analytically and demonstrated in several numerical examples, including applications to high-order entropy-conservative and entropy-stable semi-discretizations on unstructured grids for the compressible Euler and Navier-Stokes equations. 
Relaxation Runge-Kutta Methods: Fully-Discrete Explicit Entropy-Stable   Schemes for the Compressible Euler and Navier-Stokes Equations