私が使用しているサーバーには、何か起動/停止/再起動を担当するsystemdサービスがありますが、そのサービスとの対話はインタラクティブに設計されています。たとえば、サービスを再起動しよう$ systemctl restart foo.service
とすると、ユーザー名と対話型パスワードを要求しました。私が達成したいのは、サービスをラップするスクリプトや他の方法を使用して、次のように呼び出すことですscript.sh <restart/start/stop> <username> <password>
。これにより、いくつかのタスクを自動化できます。
答え1
$ printf 'username\npassword\n' | systemctl restart foo.service