whileループのgrepコマンド構文が正しくありません。

whileループのgrepコマンド構文が正しくありません。

Pythonスクリプトでos.systemコマンドを使用してアプリケーションサーバーを起動/停止しようとしています。サーバーが起動/停止されるまで待つ必要があります。以下のgrepコマンドを使用してログファイルを繰り返そうとします。ただし、二重引用符(一重引用符)の検索文字列に無効な構文が表示されます。 grepコマンドを直接実行すると正常に動作します。問題や代替案を教えてください。 (私はRedhat Enterprise Linuxを使用しています)

while ! grep -m1 'Server started' < /apps/logs/messages.log; do
       sleep 1
done

私のPythonタスクで以下のコードを実行しようとすると、検索文字列の二重引用符に「無効な構文」が表示されます(単一引用符も試しました)。どちらも誤った構文エラーのため失敗します。何が間違っているのか教えてください。 (Red Hat Enterprise Linux)。

関連情報