sh sys-snap.sh &
Apa sh
? Apa sys-snap.sh
? Mengapa saya harus meletakkannya &
di akhir baris? Adakah yang bisa menjelaskan sintaks?
Tanpa &
skrip tidak akan kembali ke prompt sampai saya tekan Ctrl+ C. Dengan &
saya dapat menekan enter dan berfungsi.
&&
berbeda dari ampersand tunggal&
?Jawaban:
sh
adalah shell yang kompatibel dengan Bourne default (biasanya bash atau dash)sys-snap.sh
adalah skrip shell, yang berisi perintah yangsh
dijalankan. Karena Anda tidak memposting kontennya, saya hanya bisa menebak dari namanya, apa fungsinya. Saya dapat menemukan skrip yang terkait dengan CPanel dengan nama file yang sama, yang membuat file log dengan semua proses saat ini, penggunaan memori saat ini, status database dll. Jika skrip dimulai dengan garis shebang (#!/bin/sh
atau serupa), Anda dapat membuatnya dapat dieksekusi denganchmod +x sys-snap.sh
dan mulai secara langsung dengan menggunakan./sys-snap.sh
jika ada di direktori saat ini.Dengan
&
proses dimulai di latar belakang, sehingga Anda dapat terus menggunakan shell dan tidak harus menunggu sampai skrip selesai. Jika Anda lupa, Anda bisa menghentikan proses yang sedang berjalan denganCtrl-Z
dan melanjutkannya di latar belakang denganbg
(atau di latar depan denganfg
). Untuk informasi lebih lanjut, lihat kontrol pekerjaansumber
sh
di biasanya hanyabash
ataudash
di sistem berbasis Linux (atau OS / X terbaru). Pada BSD, biasanya ini merupakan varian lain dari Ash (tanda hubung didasarkan pada NetBSD sh, itu sendiri berdasarkan pada Almquist Shell) atau turunan pdksh. Pada Unites komersial, umumnya ksh88.&
dan karenanya di latar belakang, Anda hanya mendapatkan prompt shell baru.&&
berbeda dari ampersand tunggal&
?Ini dikenal sebagai di
job control
bawah unix. The&
menginformasikan shell untuk menempatkan perintah di latar belakang. Ini berarti terus menjalankansys-snap.sh
perintah tetapi mengembalikan Anda ke shell Anda untuk memungkinkan Anda terus melakukan perintah paralel.Anda dapat melihat daftar pekerjaan yang sedang berjalan dengan
jobs
perintah. Anda dapat kembali ke perintah (bawa ke 'latar depan) dengan menggunakanfg
perintah. Yang menarik perintah kembali ke keadaan di mana Anda tidak melihat prompt dan Anda harus mengeluarkan Ctrl- Cuntuk mematikan proses. Namun Anda dapat menangguhkan (jeda) proses itu, mengeluarkan Ctrl- Z. Ini akan menjedasys-snap.sh
dan mengembalikan Anda ke prompt Anda. Anda dapat kemudian latar belakang itu (seolah-olah Anda telah mengeluarkan itu dengan yang&
) denganbg
perintah, dan itu akan resume berjalan dari itu berhenti negara Ctrl- Ztelah memasukkannya ke dalam.Perhatikan bahwa Anda dapat memiliki lebih dari satu pekerjaan sekaligus (seperti yang ditunjukkan oleh
jobs
):Anda dapat latar belakang dan latar depan mereka menggunakan nomor pekerjaan mereka,
%1
akansys-snap.sh
dan%2
akananother-script.sh
. Jika Anda menggunakanfg
ataubg
tanpa argumen itu akan melakukan perintah pada pekerjaan yang ditandai oleh+
dalamjobs
output di atas.fg %1
akan dimasukkan
sys-snap.sh
kembali ke latar depan, sementara meninggalkananother-script.sh
di latar belakang.Anda dapat mengeluarkan Ctrl- Curutan untuk menjalankan pekerjaan tanpa harus memprioritaskannya dengan
kill
perintah,kill %1
akan mengirimkan yang setara dengan Ctrl- Ckesys-snap.sh
.Jika Anda menggunakan bash shell,
man bash
perintah tersebut memiliki bagian terperinci di bawah bagian yang berjudul 'JOB CONTROL' yang membahas lebih detail.Mengenai nama
sys-snap.sh
, di bawah nama file unix adalah arbitrer (dengan beberapa pengecualian seperti file loader dinamis). Tidak ada persyaratan bagi mereka untuk memiliki ekstensi file tertentu untuk membuat mereka berjalan sebagai skrip shell, menjalankan perintah lain sepertiperl
atauphp
dll. Biasanya digunakan untuk memberikan kejelasan, bahwa dalam hal ini, itu adalah.sh
Shell Script menggunakan Bourne Shell/bin/sh
.Bagian fungsional
sys-snap.sh
(ketika Anda melihat isinya dengan sesuatu sepertiless
perintah) adalah Shebang . Pada baris pertama Anda mungkin akan menemukan salah satu dari:atau serupa. Dalam istilah dasar, perintah setelah
#!
(seperti/bin/sh
) dijalankan dan isi dari sisa file skrip diumpankan ke baris pada satu waktu. Perhatikan bahwa file tersebut juga harus diatur agar dapat dieksekusichmod
sehingga Anda dapat menjalankannya sebagai perintah. Jika izin tidak disetel, makashebang
efeknya tidak, karena Anda akan mendapatkan kesalahan:atau jika Anda menjalankannya dengan jalur eksplisit
./sys-snap.sh
(.
artinya direktori kerja saat ini) Anda akan mendapatkan:Alternatif lain adalah membiarkannya tanpa menjalankan izin dan secara eksplisit meminta / bin / sh untuk menjalankannya:
sumber
nohup
dilakukan, karena sering digunakan bersamaan dengan&
untuk memulai suatu proses dan dapat membunuh shell yang diluncurkan tanpa mematikan proses.jobs
akan selalu kembali kosong jika ini adalah perintah pertama?&
pada akhir perintah hanya melepaskanstdin
(tetapi tidakstdout
ataustderr
) yang menyiratkan jika perintah / skrip Anda berjalan di latar belakang tetapi menulisstdout
, Anda mungkin mengalami situasi di manaCtrl + c
tidak akan menghentikan output tetapi Anda akan dapat untuk mengetik perintah. Ini karena proses latar belakang sedang ditulis,stdout
tetapi Anda tidak dapat menghentikannya karena tidak berjalan di latar depan. Info lebih lanjut di sini .sh
adalah sebuah shell. Shell mana yang sebenarnya tergantung pada sistem. Contoh untuk sistem yang menggunakanbash
shell standarnya:sys-snap.sh
akan menjadi semacam skrip shell, jadish sys-snap.sh
akan menjalankan skrip shell.&
akan menyebabkan proses shell berjalan di latar belakang. Tanpa&
itu akan tetap berada di latar depan sampai script berakhir. Script akan bekerja dengan cara baik, itu hanya masalah menunggu script untuk mengakhiri atau tidak sebelum menjalankan perintah lebih lanjut.sumber
Apakah server Anda ada di hostgator?
Skrip
sys-snap.sh
adalah skrip khusus yang ditulis oleh tim hostgator untuk mengumpulkan semua file log dan data untuk sistem, sehingga mereka menggunakan hasilnya untuk memantau dan mengumpulkan informasi sistem.sumber