Saya menjalankan perintah tidur di terminal menggunakan layar dan dalam mode terpisah.
Setelah layar segera kembali, saya menjalankan ps
perintah untuk memverifikasi tidur sedang berjalan.
$ screen -d -m 'sleep 2m'
[[email protected] ~]$ ps
PID TTY TIME CMD
22795 pts/0 00:00:00 bash
22869 pts/0 00:00:00 ps
Tetapi perintah itu tidak menunjukkan tidur. Apa yang saya lakukan salah di sini?
Jawaban yang Diterima:
Ini juga membingungkan saya pada awalnya. Saya kemudian membaca kembali screen
lokal halaman manual untuk SINOPSIS — halaman manual online tidak memberikan sinopsis) — dan perhatikan bahwa tertulis:
screen [ -options ] [ cmd [ args ] ]
… yang membuat saya percaya bahwa ia ingin melihat cmd
dan args
sebagai argumen independen.
Karena Anda memberikan argumen pertama itu sebagai nilai yang dikutip — ‘sleep 2m
‘ — ia mencoba menjalankan perintah bernama (tepatnya) ‘sleep 2m
', sebagai lawan dari apa yang Anda benar-benar diinginkan, yaitu sleep
dengan argumennya sendiri yaitu 2m
. screen
perintah berhasil keluar (dalam pengujian saya), tetapi tidak berhasil menjalankan perintah Anda.
Gunakan, sebagai gantinya:
screen -d -m sleep 2m
Alih-alih ps
, yang hanya akan menampilkan proses yang terkait dengan terminal saat ini (yang LAYAR dan proses terkaitnya tidak ), gunakan:
ps x
yang akan menunjukkannya:
$ ps x
PID TTY STAT TIME COMMAND
# ...
7514 pts/1 Ss 0:00 -bash
7761 ? Ss 0:00 SCREEN -d -m sleep 2m
7762 pts/2 Ss+ 0:00 sleep 2m
7880 pts/1 R+ 0:00 ps x
# ...