Saya ingin menjalankan dan mengonfigurasi proses yang mirip dengan daemon dari skrip.
Shell saya ditiru zsh di bawah Cygwin dan daemonnya adalah SFK , server FTP dasar.
Untuk yang penting di sini, skrip startserv.sh
dapat disusun sebagai berikut:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Setelah menjalankan skrip startserv.sh
, berhenti (berakhir?) Tanpa menampilkan prompt, lalu:
CTRL+ Cmengakhiri skrip dan proses pekerjaan latar belakang;
Memukul Enterscript berakhir proses tetap di latar belakang.
Pokoknya saya bisa melihatnya hanya melalui ps
dan tidak jobs
, jadi, ketika saya ingin menutup proses, saya harus mengirim kill -9
sinyal brutal , yang merupakan sesuatu yang saya ingin hindari mendukung CTRL+ C.
Alternatif akan menjalankan seluruh skrip di latar belakang. 'Would be', tetapi read
perintah tidak dapat mendapatkan input pengguna jika skrip dijalankan sebagai startserv.sh &
.
Perhatikan bahwa saya memerlukan server singkat, bukan daemon sejati : yaitu, saya ingin proses server berjalan di latar belakang, setelah skrip berakhir, untuk melakukan tugas shell interaktif sederhana (dengan tamu mesin virtual), tetapi saya tidak t perlu proses untuk bertahan dari cangkang; oleh karena itu nohup
sepertinya tidak tepat.
bgproc="$!"
dan kemudiancommand "$bgproc"
untuk mengambil tindakan yang sesuai. Lihat juga stackoverflow.com/questions/1908610/...