昨日は寝る前に長い作業を始めましたが、起きる前に終わりそうで使っていました。
./command && sudo poweroff
システムはパスワードを要求しないように構成されているため、sudo poweroff
このコマンドが完了した後にシステムをシャットダウンする必要があります。
しかし、まだ実行中なので、別のタスクにシステムを使用したいと思います。バックグラウンドでコマンドを実行することは問題ではありませんが、システムがいつでもシャットダウンする可能性があります。
最初のコマンドが完了するまで実行できるようにしながら、コマンドが実行されるのをzsh
防ぐ方法はありますか?poweroff
このような場合でも、/etc/sudoers
パスワードの入力を求めるようにファイルを編集すると便利でしょうか?
答え1
あなたの意見に記載されているように、インタラクティブシェルの前景でまだ実行されているので、を押すことができるはずですCtrl+Z。
これにより操作が中断されます./command
。 SIGTSTP信号が実際にブロックされ、この場合(低い可能性)、終了(0)が選択されていない./command
限り、終了ステータスは0ではないため(128 + SIGTSTP、通常148)sudo poweroff
実行されません。
./command
その後、フォアグラウンドまたはバックグラウンドで使用または再開できます。fg
bg
以下を使用してこれをテストできます。
sleep 10 && echo poweroff
を押して後で使用/復元するとpoweroff
出力がないことに注意してください。Ctrl+Zfg
bg
または
sleep 10 || echo "failed: $?"
failed: 148
クリックして確認してくださいCtrl+Z。
これはzsh
startに有効で、使用すると想定しています./command && sudo poweroff
。他のシェルでは機能しない可能性があり、サブシェルや複合(./command && sudo poweroff)
コマンド{ ./command && sudo poweroff; }
の一部などの他の方法で起動した場合(他zsh
のほとんどのシェルとは異なり、サブシェルに変換されるため、そのまま再開できます)、一時停止したときに全体でした。
答え2
一時的に /sbin/poweroff の名前を変更できます。
答え3
最初のコマンドが完了するまで実行できるようにしながら、zshがpoweroffコマンドを実行しないようにする方法はありますか?
gdb
実行中のプロセスのメモリを編集するようなものを使用しないと、これは可能ではないと思います。
この場合、パスワードの入力を求めるように/etc/sudoersファイルを編集することはまだ役に立ちますか?
役に立ちます。