Systemd mampu menangani berbagai jenis layanan yang berbeda khususnya salah satu dari yang berikut ini
simple
- Proses jangka panjang yang tidak melatarbelakangi dirinya sendiri dan tetap melekat pada shell.
forking
- Sebuah dasmon khas yang bercabang sendiri melepaskannya dari proses yang menjalankannya, secara efektif melatar belakangi dirinya sendiri.
oneshot
- Proses berumur pendek yang diharapkan untuk keluar.
dbus
- Seperti sederhana, tetapi pemberitahuan proses penyelesaian startup dikirim melalui dbus.
notify
- Seperti sederhana, tetapi pemberitahuan proses penyelesaian startup dikirim tidak sah.
idle
- Seperti sederhana, tetapi biner dimulai setelah pekerjaan telah dikirim.
Dalam kasus Anda, Anda telah memilih Type=forking
yang berarti systemd sedang menunggu proses untuk memotong sendiri dan untuk proses induk berakhir, yang diperlukan sebagai indikasi bahwa proses telah mulai berhasil. Namun, proses Anda tidak melakukan ini - ia tetap berada di latar depan dan systemctl start
akan menggantung tanpa batas waktu atau hingga proses macet.
Alih-alih, Anda menginginkannya Type=simple
, yang merupakan default sehingga Anda dapat menghapus garis seluruhnya untuk mendapatkan efek yang sama. Dalam mode ini systemd tidak menunggu proses untuk menyelesaikan memulai (karena tidak memiliki cara untuk mengetahui kapan ini terjadi) dan dengan demikian terus menjalankan dan bergantung layanan langsung. Dalam kasus Anda tidak ada jadi ini tidak masalah.
Catatan kecil tentang keamanan:
Anda menjalankan layanan sebagai root, ini tidak disarankan karena kurang aman daripada menjalankannya sebagai pengguna yang tidak memiliki hak. Alasan untuk ini adalah bahwa jika ada kerentanan dalam jekyll yang entah bagaimana memungkinkan eksekusi perintah (mungkin melalui kode itu parsing) maka penyerang perlu melakukan apa-apa lagi untuk sepenuhnya memiliki sistem Anda. Sebaliknya, jika dijalankan sebagai pengguna yang tidak memiliki hak istimewa, penyerang hanya dapat melakukan kerusakan sebanyak pengguna itu dan sekarang harus berusaha untuk mendapatkan hak akses root untuk sepenuhnya memiliki sistem Anda. Ini hanya menambahkan penyerang lapisan tambahan harus pergi sekalipun.
Anda cukup menjalankannya sebagai pengguna yang sama yang menjalankan server web Anda, tetapi ini membuat Anda terbuka untuk kemungkinan serangan lain. Jika ada kerentanan di server web Anda yang memungkinkan pengguna untuk memanipulasi file di sistem Anda, mereka dapat memodifikasi file html yang dihasilkan, atau terburuk file sumber dan menyebabkan server Anda melayani apa pun yang mereka inginkan. Namun, jika file yang dihasilkan dan file sumber hanya dapat dibaca oleh server web dan dapat ditulis menjadi pengguna yang tidak memiliki hak istimewa, mereka tidak akan dapat, dengan mudah, memodifikasinya dengan menyerang server web.
Namun, jika Anda hanya menyajikan file statis dari server ini dan menjaga server tetap up to date, serangan ini sangat kecil kemungkinannya - tetapi masih memungkinkan. Adalah tanggung jawab Anda untuk menimbang risiko vs overhead pengaturannya berdasarkan seberapa penting sistem Anda, tetapi kedua tips ini sangat sederhana untuk diatur dan hampir tidak ada overhead pemeliharaan.
Type=forking
. Selain itu, itu tidak akan berjalanexecStart
sebagai ekspansi shell, sehingga&
pada akhirnya tidak akan pernah dipahami sebagai bendera latar belakang.