Saya baru-baru ini harus melakukan ini. Pada Stack Overflow saya menjawab bagaimana menemukan PID dari proses yang berjalan di layar . Setelah Anda memiliki PID yang dapat Anda gunakan ps
untuk mendapatkan perintah. Berikut adalah isi dari jawaban itu dengan beberapa konten tambahan untuk mengatasi situasi Anda:
Anda bisa mendapatkan PID dari sesi layar di sini seperti:
$ screen -ls
There are screens on:
1934.foo_Server (01/25/15 15:26:01) (Detached)
1876.foo_Webserver (01/25/15 15:25:37) (Detached)
1814.foo_Monitor (01/25/15 15:25:13) (Detached)
3 Sockets in /var/run/screen/S-ubuntu.
Biarkan kami mengira bahwa Anda ingin PID program berjalan di Bash di foo_Monitor
sesi layar. Gunakan PID foo_Monitor
sesi layar untuk menjalankan PID bash
sesi di dalamnya dengan mencari PPID (PID Induk) untuk PID yang diketahui:
$ ps -el | grep 1814 | grep bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 1815 1814 0 80 0 - 5520 wait pts/1 00:00:00 bash
Sekarang dapatkan PID bash
sesi saja:
$ ps -el | grep 1814 | grep bash | awk '{print $4}'
1815
Sekarang kita ingin proses dengan yang PID. Hanya bersarang perintah, dan kali ini gunakan -v
bendera grep bash
untuk mendapatkan proses yang bukan bash:
$ echo $(ps -el | grep $(ps -el | grep 1814 | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')
23869
Kita dapat menggunakan PID itu untuk menemukan perintah (Lihat di akhir baris kedua):
$ ps u -p 23869
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
dotanco+ 18345 12.1 20.1 5258484 3307860 ? Sl Feb02 1147:09 /usr/lib/foo
Gabungkan semuanya:
$ ps u -p $(ps -el | grep $(ps -el | grep SCREEN_SESSION_PID | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')
Bagaimana dengan menggunakan
screen -S <your-fancy-name>
untuk memberikan sesi yang berarti nama sesi sesuai dengan perintah yang mereka jalankan? Nama akan didaftar denganscreen -ls
dan digunakan untuk melanjutkan sesi olehscreen -r <your-fancy-name>
.Edit untuk ditambahkan:
Karena itu telah dibawa ke perhatian saya beberapa hari yang lalu.
tmux
menawarkan serangkaian fungsi yang sama persisscreen
(jika tidak lebih) dan dilengkapi dengan fitur yang sesuai dengan kebutuhan Anda. Dari FAQ: "tmux mendukung penggantian nama jendela secara otomatis ke aplikasi yang sedang berjalan tanpa retasan kotor menggunakan urutan pelarian. Bahkan secara default diaktifkan."sumber