Jawaban:
Secara umum Anda dapat memeriksa output dari ps x
. Entah ada run.sh
disana atau tidak. Jika ada, mungkin proses yang Anda cari atau yang lain run.sh
. Investigasi lebih lanjut mungkin diperlukan.
Namun ada trik ini. Catatan nohup
mencetak pesan seperti ini:
nohup: ignoring input and appending output to /home/alli/nohup.out
Sekarang aktifkan:
lsof /home/alli/nohup.out
Jika Anda run.sh
dipanggil dengan nohup
masih berjalan, seharusnya muncul di output dari lsof
(dua kali, karena nohup
mengarahkan kembali deskriptor file 1
dan 2
untuk nohup.out
). Jika Anda menggunakan nohup
lebih dari sekali, lsof
harus mengembalikan beberapa proses. Jika Anda menggunakan nohup
lebih dari sekali dengan executable yang sama, Anda mungkin perlu memeriksa /proc/$pid/
( contoh ) untuk membedakan mereka.
Saya akan menggunakan tmux
di tempat pertama. Bahkan saya menggunakannya setiap hari.
Anda dapat menyimpan nilai nohup
proses ped dalam file menggunakan $!
tepat setelah Anda memulai proses dengan
nohup the_process &
Kemudian ketika Anda kembali, baca PID dan periksa apakah prosesnya berjalan. Jika ya, periksa apakah itu jenis proses yang Anda inginkan. (PID mungkin telah dipindahkan ke proses lain.)
Jika tidak mengganggu fungsi proses, Anda juga dapat melewati proses argumen palsu yang akan bertindak sebagai petunjuk untuk Anda ketika Anda membaca output dari ps
. Misalnya.:
$ cat p.bash
#!/bin/bash
sleep 10
$ nohup ./p.bash some_id_hint &
[1] 14139
nohup: ignoring input and appending output to 'nohup.out'
$ echo $!
14139
$ ps 14139
PID TTY STAT TIME COMMAND
14139 pts/1 S 0:00 /bin/bash ./p.bash some_id_hint